2

MySQL はどのような状況で型を TINYINT に変換しますか? mysql DDL の BOOL または BOOLEAN 型は、true または false に対して自動的に TINYINT(1) に変換されることを知っています。あるテーブルのフィールドに varchar(16) のタイプがあり、別のテーブルの同じフィールドに tinyint(4) のタイプがあるデータベースを分析していますか? たとえば、t1.name varchar(15) および t2.name tinyint(4) の場合、t1.name=t2.name です。

4

1 に答える 1

1

暗黙の型変換に頼らず、手動でデータ型分析を行ってください。

最初に、MySQL がデータに最適な col-type と考えるものを見てみましょう。を実行します

 SELECT * FROM table PROCEDURE Analyse()

と言って、データをさらに分析します

 SELECT * FROM table WHERE varcharCol NOT REGEXP '^[0-9].*$'

varcharCol の数値以外の値をすべて取得します。そうでない場合は、最終的にさまざまな MySQL タイプの値の範囲をここで確認する必要があります。

次に、varcharCol を TINYINT などに変換する準備が整いました。

于 2014-09-25T11:50:05.357 に答える