如何在 MySQL 中启用严格的 sql_mode
?
我想从SQL提取数据并在strict
模式下对其进行处理。
我目前的 sql_mode
是:
mysql> SELECT @@sql_mode;
+------------------------+
| @@sql_mode |
+------------------------+
| NO_ENGINE_SUBSTITUTION |
+------------------------+
最佳答案
您基本上有两种方法,使用 SQL 命令或更改配置文件。如果您使用 SQL 命令设置它 - 它会在服务器重新启动后变回。
在 SQL 中执行此操作:SET GLOBAL sql_mode='STRICT_TRANS_TABLES';
在配置文件中执行:[mysqld]sql_mode="STRICT_TRANS_TABLES"
文件位置因您的操作系统而异,更多关于在此处找到它的位置:https://dev.mysql.com/doc/refman/5.7/en/option-files.html
需要注意的是,您可以指定多种模式:sql_mode="STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION"
这在使用 SQL 语句时尤其重要,因为它可以覆盖整个模式字符串。
更多关于 SQL 模式的内容在这里:https://dev.mysql.com/doc/refman/5.7/en/sql-mode.html