MySQL厳格モードsql_mode
私たちはできるだけプログラムを書くときにデータベースに挿入されたデータを制御し、データベースでデータの間違いを判断しないようにしていますが、便利さのためにデータベース自体のフォールトトレランス能力が必要になることがあります.例:
次のデータテーブルを作成します.
update book set num='abc'を実行すると、厳格なモードが有効になっていないため、エラーは発生しません.だから
先にset sql_を実行mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION",
その後update book set num='abc'を実行すると、データベースが間違っています.
一労永逸したいなら、データベースプロファイルmyを直接作成します.iniの関連パラメータは
# Set the SQL mode to strict sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
次のデータテーブルを作成します.
CREATE TABLE `book` (
`id` int(11) default NULL,
`num` int(11) unsigned default NULL
) ENGINE=InnoDB DEFAULT CHARSET=gbk
insert into bookvalues(1,0),(2,0)
update book set num='abc'を実行すると、厳格なモードが有効になっていないため、エラーは発生しません.だから
先にset sql_を実行mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION",
その後update book set num='abc'を実行すると、データベースが間違っています.
一労永逸したいなら、データベースプロファイルmyを直接作成します.iniの関連パラメータは
# Set the SQL mode to strict sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"