参考
表示
表示関係のオプション
-
--show-warnings
mysqlコマンドで、データのインポートやインサートを行ったとき、SQLモードによっては警告が発生します。 警告はデフォルトで常は出力されませんが、この"--show-warnings"オプションを指定すると、出力してくれます。 特にSQLモードにSTRICT_TRANS_TABLESを指定していない場合に、手動などで作成したデータをインポートすると、意図しないデータのインポートで警告が発生しているのに気が付かないことがあります。 そのため、データのインポート、インサートを行う場合は、このオプションを指定して警告の内容をチェックした方が良いでしょう。
例 以下のような内容の、test_db_insert.sqlファイルを用意します。
CREATE TABLE `message` ( `id` int(11) NOT NULL AUTO_INCREMENT, `comment` varchar(8) DEFAULT NULL, PRIMARY KEY (`id`) ) DEFAULT CHARSET=utf8; INSERT INTO message(comment) VALUES('あいうえおかきくけこ');SQLモードにSTRICT_TRANS_TABLESが指定されていない状態で、データベースtest_dbに対してこのSQLを実行すると、以下のように警告が出力されます。
$ mysql -u root --show-warnings -D test_db < test_db_insert.sql Warning (Code 1265): Data truncated for column 'comment' at row 1これは、カラムcommentで、データの切り捨てが発生した警告です。 カラムcommentはVARCHAR(8)なのに、"あいうえおかきくけこ"の10文字を指定して最後の2文字が切り捨てられたことが原因になります。
参考
※SQLモードにSTRICT_TRANS_TABLESが指定されている場合、警告が発生するようなインサート、アップデートはエラーになります。 MySQL 5.6以降では、デフォルトでSTRICT_TRANS_TABLESが指定されるようになりました。