新人PGの学び

プログラマーの卵のlog

MySQL SQLモードの検証方法

■概要
MySQL5.6ではsql_modeがSTRICT_TRANS_TABLESになるため・・・
原因:sql_mode STRICT_TRANS_TABLES


■その前にSQLモードなんぞや


■検証方法
・NOT NULL カラムに NULL を挿入
・数値カラムに大きすぎる数値を挿入したりするなど、
「正しくない」値をカラムに挿入


■結果
・NOT NULL カラムに NULL を挿入
ERROR 1048 (23000): Column 'table' cannot be null


■SQLモードの確認方法
mysql> SHOW VARIABLES LIKE 'sql_mode';
※無効の場合は値なし
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| sql_mode | |
+---------------+-------+
1 row in set (0.00 sec)


mysql> SELECT @@sql_mode;
※無効の場合は値なし
+------------+
| @@sql_mode |
+------------+
| |
+------------+
1 row in set (0.00 sec)


※デフォルト値がないカラムに、値なしでinsertするとエラーになる


■発生した警告の確認
SHOW WARNINGS;


■わかりやすい

■参照