MySQL5.6のDEFALULT NOT NULLの取り扱い

MySQL5.6 はDEFALULT NOT NULLのカラムにnullが入ってくるとエラーを返しますが、MySQL5.5以下はその型のデフォルト値を入れてくれるようになっています。

これはsql_modeの違いによるものです。Amazon RDSでどうなっているか見てみます

5.5系

mysql> SELECT @@GLOBAL.sql_mode;
+-------------------+
| @@GLOBAL.sql_mode |
+-------------------+
|                   |
+-------------------+
1 row in set (0.00 sec)

5.6系

mysql> SELECT @@GLOBAL.sql_mode;
+------------------------+
| @@GLOBAL.sql_mode      |
+------------------------+
| NO_ENGINE_SUBSTITUTION |
+------------------------+
1 row in set (0.00 sec)

となっていたので、Amazon RDSではとりあえず意識しなくても良さそうです。