mysql5.7数据库的sql_model配置说明

sql_modelmysql数据库的一些合理性配置,旧版本默认为空,即不做任何限制,可是在5.7版本以后会有相关参数的默认配置,能够经过如下命令进行查询:mysql

select @@sql_mode;

如图所示,每一个配置项用,号隔开了,接下来简单讲讲各个配置的做用:sql

ONLY_FULL_GROUP_BY

对于GROUP BY聚合操做,若是在SELECT中的列,没有在GROUP BY中出现,那么这个SQL是不合法的,由于列不在GROUP BY从句中。数据库

STRICT_TRANS_TABLES

在该模式下,若是一个值不能插入到一个事务表中,则中断当前的操做,对非事务表不作限制。函数

NO_ZERO_IN_DATE

在严格模式下,不容许日期和月份为零。.net

NO_ZERO_DATE

在严格模式下,不容许插入零日期,插入零日期会抛出错误而不是警告。3d

ERROR_FOR_DIVISION_BY_ZERO

在INSERT或UPDATE过程当中,若是数据被零除,则产生错误而非警告。如 果未给出该模式,那么数据被零除时mysql返回NULLcode

NO_AUTO_CREATE_USER

禁止GRANT建立密码为空的用户。blog

NO_AUTO_VALUE_ON_ZERO

该值影响自增加列的插入。默认设置下,插入0NULL表明生成下一个自增加值。若是用户 但愿插入的值为0,而该列又是自增加的,那么这个选项就有用了。事务

NO_ENGINE_SUBSTITUTION

若是须要的存储引擎被禁用或未编译,那么抛出错误。不设置此值时,用默认的存储引擎替代,并抛出一个异常。ip

PIPES_AS_CONCAT

||视为字符串的链接操做符而非或运算符,这和Oracle数据库是同样的,也和字符串的拼接函数concat相相似。

ANSI_QUOTES

启用ANSI_QUOTES后,不能用双引号来引用字符串,由于它被解释为识别符。

以上能够根据自身需求进行配置,多个用,号隔开便可

临时配置

根据如下sql语句模板进行自定义,执行便可:

set @@global.sql_mode='模式列表';

永久配置

修改mysql的配置文件,windows在mysql安装目录下的my.ini配置文件,CentOS/etc目录下的my.cnf配置文件。

[mysqld]下方增长如下内容便可

sql_model=模式列表

修改完成后重启mysql服务

摘抄——CSDN-小幸运-s《mysql 的sql_model模式》

相关文章
相关标签/搜索