MySQL sql_mode "TRADITIONAL"
、別名「厳密モード」は、MySQL ドキュメントで次のように定義されています。
列に誤った値を挿入すると、「警告の代わりにエラーが発生します」。
sql_mode が に設定されていることを確認する方法は次のとおりです"TRADITIONAL"
。
まず、現在の設定を確認します。
mysql
mysql> SELECT @@GLOBAL.sql_mode;
+-------------------+
| @@GLOBAL.sql_mode |
+-------------------+
| |
+-------------------+
1 row in set (0.00 sec)
これはデフォルトの空白を返しました。これは悪いことです。sql_mode が「TRADITIONAL」に設定されていません。
したがって、構成ファイルを編集します。
sudo vim /etc/mysql/my.cnf
というラベルの付いたセクションにこの行を追加します[mysqld]
:sql_mode="TRADITIONAL"
(fancyPantsが指摘したように)
次に、サーバーを再起動します。
sudo service mysql restart
次に、もう一度確認します。
mysql
mysql> SELECT @@GLOBAL.sql_mode;
+------------------------------------------------------------------------------------------------------------------------------------------------------+
| @@GLOBAL.sql_mode |
+------------------------------------------------------------------------------------------------------------------------------------------------------+
| STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
成功!あなたは今、黄金です。