sql_mode参数

梦莱10个月前技术文章224

一、参数含义

sql_mode是个很容易被忽视的变量,其本身主要就是一种语法校验规则 默认值是空值,在这种设置下是可以允许一些非法操作的,比如允许一些非法数据的插入。

二、常用值含义

1、ONLY_FULL_GROUP_BY:对于GROUP BY聚合操作,如果在SELECT中的列,没有在GROUP BY中出现,那么这个SQL是不合法的,因为列不在GROUP BY从句中。(这种情况最容易遇到)

图片17.png

2、NO_AUTO_VALUE_ON_ZERO:该值影响自增长列的插入。默认设置下,插入0或NULL代表生成下一个自增长值。如果用户希望插入的值为0,而该列又是自增长的,那么这个选项就有用了。

3、STRICT_TRANS_TABLES:在该模式下,如果一个值不能插入到一个事务表中,则中断当前的操作,对非事务表不做限制。

4、NO_ZERO_IN_DATE:在严格模式下,不允许日期和月份为零

5、NO_ZERO_DATE:设置该值,mysql数据库不允许插入零日期,插入零日期会抛出错误而不是警告。

6、ERROR_FOR_DIVISION_BY_ZERO:

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

7、NO_AUTO_CREATE_USER:

禁止GRANT创建密码为空的用户

8、NO_ENGINE_SUBSTITUTION:

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

9、PIPES_AS_CONCAT:

"||"视为字符串的连接操作符而非或运算符,这和Oracle数据库是一样的,也和字符串的拼接函数Concat相类似

10、ANSI_QUOTES:

启用ANSI_QUOTES后,不能用双引号来引用


相关文章

MySQL运维实战(2)MySQL用户和权限管理

MySQL用户管理基本命令创建用户使用create user命令创建用户create user 'username'@'host' ide...

离线部署Mysql 8.X

离线部署Mysql 8.X

安装包和环境准备将mysql-8.0.23-el7-x86_64.tar.gz安装包上传至服务器wget https://cdn.mysql.com/archives/mysql-8.0/mysql-...

MySQL 添加列报错处理

MySQL 添加列报错处理

一、添加列报错(65535)表添加列收到报错,具体 SQL 和报错信息如下:ALTER TABLE table ADD column varchar(256) NULL COMMENT '个人打款授权...

基于commit命令创建docker镜像

基于commit命令创建docker镜像

创建docker容器```Plain Text sudo docker run -it centos:centos7 /bin/bash![https://teamo-md.oss-cn-shang...

企业级大数据安全架构(三)

企业级大数据安全架构(三)

一、Ambair修改集群节点hostname在后面安装FreeIPA,需要机器名带全域名,如果我们之前集群节点机器名不是全域名可以按照下面方法在Ambari上修改所有节点机器名1.部署节点说明本次测试...

flume性能调优

1.Source性能调优1.1 Spooldir Source使用Spooldir Source采集日志数据时,若每行日志数据<100bp,可以通过将多行合并传输来提升传输性能建议合并时根据数据...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。