网站排名推广推荐,英文网站建设 飞沐,中国十大门窗品牌排行榜,自己做一元夺宝网站文章目录 一、sql_mode作用二、查询sql_mode三、mysql8默认的mode配置#xff08;6个默认配置#xff09;四、常见mode详细解释mysql8默认配置了的mode#xff08;6个#xff09;需要自己配置的mode#xff08;4个#xff09; 五、设置sql_mode#xff08;一旦设置了6个默认配置四、常见mode详细解释mysql8默认配置了的mode6个需要自己配置的mode4个 五、设置sql_mode一旦设置了就不会再用默认配置的mode规则命令行设置两个都可以重启失效配置文件设置 参考文档 一、sql_mode作用
sql_mode是一组语法校验规则
二、查询sql_mode
执行sql查询
select GLOBAL.sql_modeselect SESSION.sql_mode查看my.conf配置文件文件夹路径为
C:\ProgramData\MySQL\MySQL Server 8.0三、mysql8默认的mode配置6个默认配置
ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION四、常见mode详细解释
mysql8默认配置了的mode6个
ONLY_FULL_GROUP_BY对于GROUP BY聚合操作如果在SELECT中的列没有在GROUP BY中出现那么这个SQL是不合法的因为列不在GROUP BY从句中STRICT_TRANS_TABLES如果一个值不能插入到一个事务中则中断当前的操作对非事务表不做限制NO_ZERO_IN_DATE不允许日期和月份为零NO_ZERO_DATEmysql数据库不允许插入零日期插入零日期会抛出错误而不是警告ERROR_FOR_DIVISION_BY_ZERO在insert或update过程中如果数据被零除则产生错误而非警告。如果未给出该模式那么数据被零除时Mysql返回NULLNO_ENGINE_SUBSTITUTION如果需要的存储引擎被禁用或未编译那么抛出错误。不设置此值时用默认的存储引擎替代并抛出一个异常
需要自己配置的mode4个
NO_AUTO_VALUE_ON_ZERO该值影响自增长列的插入。默认设置下插入0或NULL代表生成下一个自增长值。如果用户希望插入的值为0而该列又是自增长的那么这个选项就有用了。NO_AUTO_CREATE_USER禁止GRANT创建密码为空的用户PIPES_AS_CONCAT将||视为字符串的连接操作符而非或运算符这和Oracle数据库是一样是也和字符串的拼接函数Concat想类似ANSI_QUOTES不能用双引号来引用字符串因为它被解释为识别符
五、设置sql_mode一旦设置了就不会再用默认配置的mode规则
命令行设置两个都可以重启失效
SET GLOBAL SET GLOBAL sql_modeSTRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTIONSET SESSION sql_modeSTRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION配置文件设置
加下面这行按需添加mode作者只是举例
sql_modeSTRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION参考文档
sql_mode详解超详细亲测有效