MySQL 之 SQL_MODE模式
MySQL 之 SQL_MODE 模式
sql_mode默认值是空值,在默认值设置下是可以允许一些非法操作,比如允许写入一些非法数据,在生产环境中,必须将sql_mode设置为严格模式。
sql_mode常用值如下:
ONLY_FULL_GROUP_BY:对于GROUP BY聚合操作,如果在SELECT中的列,没有在GROUP BY中出现,那么这个SQL是不合法的,因此列不在GROUP BY从句中。
NO_AUTO_VALUE_ON_ZERO:该模式影响自增列的插入。在默认设置下,插入 0 或 NULL 代表生成下一个自增长值。如果用户希望插入的值为0,而该列又是自增长值,那么该模式就起作用了。
STRICT_TRANS_TABLES:在该模式下,如果一个值不能插入到一个事务表中,则中断当前的操作,对非事务表不做限制。
NO_ZERO_IN_DATE:在严格模式下,不允许日期和月份为"零"。
NO_ZERO_DATE:在该模式下,MySQL不允许插入"零"日期,插入零日期会抛出错误而不是警告。
ERROR_FOR_DIVISION_BY_ZERO:在INSERT或UPDATE过程中,如果数据被清零,则产生错误而非警告。如果未给出该模式,那么数据被清零时,MySQL返回NULL。
NO_AUTO_CREATE_USER:禁止GRANT创建密码为空的用户。
NO_ENGINE_SUBSTITUTION:如果需要的存储引擎被禁用或未编译,那么抛出错误。不设置该模式,用默认的存储引擎代替,并抛出一个异常。
PIPES_AS_CONCAT:将"||"视为字符串的连接操作符而非或运算符,这和ORACLE数据库是一样的,也和字符串的拼接函数Concat相似。
ANSI_QUOTES:启用ANSI_QUOTES后,不能用双引号来引用字符串,因为它被解释为识别符。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
2020-02-18 python 开启http服务并下载文件
2016-02-18 'mysql.column_stats' doesn't exist and Table 'mysql.index_stats' doesn't exist