您的位置:宽带测速网 > mysql教程 > 怎样解释MySQL 5.7中sql_mode的含义

怎样解释MySQL 5.7中sql_mode的含义

2025-06-22 17:06来源:互联网 [ ]

MySQL 5.7版本中sql_mode更加严格。解释下各个mode的含义:

ONLY_FULL_GROUP_BY   不要让GROUP BY部分中的查询指向未选择的列  
STRICT_TRANS_TABLES 为事务存储引擎启用严格模式,也可能为非事务存储引擎启用严格模式
NO_ZERO_IN_DATE 在严格模式,不接受月或日部分为0的日期
NO_ZERO_DATE 在严格模式,不将 '0000-00-00'做为合法日期
ERROR_FOR_DIVISION_BY_ZERO 在严格模式,在INSERT或UPDATE过程中,如果被零除(或MOD(X,0)),则产生错误  
NO_AUTO_CREATE_USER防止GRANT自动创建新用户,除非还指定了密码
NO_ENGINE_SUBSTITUTION 如果需要的存储引擎被禁用或未编译,可以防止自动替换存储引擎

注意:在一个主从环境下,为保证数据的一致性,一定要设置主从的sql_mode一样,在数据迁移的时候也要保证sql_mode的一致,不然复制和迁移遇到上面的限制均会失败,所以尽可能使用标准SQL语法。