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后,不能用双引号来引用字符串,因为它被解释为识别符。

posted @   __Yoon  阅读(323)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需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
点击右上角即可分享
微信分享提示