首页 > 数据库 >mysql执行时的sql_mode设置

mysql执行时的sql_mode设置

时间:2022-08-27 14:46:33浏览次数:71  
标签:GROUP NO sql ZERO mode 设置 mysql

查询当前MySQL的模式:

select @@sql_mode;

 

 根据需要设置模式,这里是将ONLY_FULL_GROUP_BY去掉:

SET SESSION sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));

 

 注意:这里的设置只是临时的,只针对当前会话!!!

如果要全局设置,将之前sql_mode的地方都换成了@@global.sql_mode

几种常见的mode介绍:

ONLY_FULL_GROUP_BY:出现在select语句、HAVING条件和ORDER BY语句中的列,必须是GROUP BY的列或者依赖于GROUP BY列的函数列。

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

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

 NO_ZERO_IN_DATE:这个模式影响了是否允许日期中的月份和日包含0。如果开启此模式,2016-01-00是不允许的,但是0000-02-01是允许的。它实际的行为受到 strict mode是否开启的影响1。

 NO_ZERO_DATE:设置该值,mysql数据库不允许插入零日期。它实际的行为受到 strictmode是否开启的影响2。

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

 

标签:GROUP,NO,sql,ZERO,mode,设置,mysql
From: https://www.cnblogs.com/zhipeng-wang/p/16630531.html

相关文章

  • sql里将所有表结构生成数据字典的sql脚本
    SELECT表名=CASEWHENa.colorder=1THENd.nameELSE''END,表说明=CASEWHENa.colorder=1THENisnull(f.value,'')ELSE''END,--字段序号=a.colorder,字段名=a.name......
  • SQL:排名前几名中的前几名
    1.选择订单量排名前2的商品,并且选出每个商品订单量排名前3的销售方式,模拟数据如下:name作为商品,count作为对应渠道的订单量,way为渠道  通过excel法线,前两名存在3个:......
  • 数据库学习笔记 (本数据库学习笔记以SQL sever 2019 为例进行学习) 20220823 第一节课
    教材及参考数据库课程讲什么?内容安排第一部分数据库原理部分第一章数据库系统概述为什么要学习数据库?数据库的发展改变了人们的工作和生活模式信息积累与运用......
  • mysql-开启日志记录功能
    开启日志记录功能--开启功能SETGLOBALgeneral_log=ON;--保存到文件SETGLOBALlog_output='file';查看日志内容--查看日志保存位置及开启状态showvariab......
  • MySQL十六:36张图理解Buffer Pool
    转载~在应用系统中,我们为加速数据访问,会把高频的数据放在「缓存」(Redis、MongoDB)里,减轻数据库的压力。在操作系统中,为了减少磁盘IO,引入了「缓冲池」(bufferpool)机制......
  • MySQL十七:Change Buffer
    转载~在之前的文章《InnoDB的存储结构》介绍的InnoDB的存储结构的组成中,我们知道ChangeBuffer也是用InnoDB内存结构的组成部分。ChangeBuffer主要是为了在写入是减少......
  • Mysql----外连接,约束
    《外连接》这个外连接其实就是解决多张表笛卡尔集的问题:比如:    我有如上两张表,我想要显示出全部学生的成绩,没有成绩的同学默认成绩为NULL按照以前的方法,要将......
  • MySQL十八:写语句的执行过程
    转载~当我们需要修改一个记录时,数据库会先根据条件找到要修改的数据,然后执行修改写入操作,因此我们再分析写操作的执行过程时,其实是包含读语句的执行过程的。一、读语句的......
  • MySQL四:InnoDB的存储结构
    转载~「MySQL存储引擎最大的特点就是【插件化】,可以根据自己的需求使用不同的存储引擎,innodb存储引擎支持行级锁以及事务特性,也是多种场合使用较多的存储引擎。」当官方......
  • MySQL五:InnoDB线程模型
    转载~一、InnoDB线程模型的组成在Innodb存储引擎中,后台线程的主要作用是「负责刷新内存池中的数据,保证缓冲池中的内存缓存的是最近的数据」。此外它会将已经修改的数据文......