我的编程空间,编程开发者的网络收藏夹
学习永远不晚

mysql中怎么设置sql_mode

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

mysql中怎么设置sql_mode

这篇文章给大家介绍mysql中怎么设置sql_mode,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

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


ORACLE的sql_mode设置等同:PIPES_AS_CONCAT, ANSI_QUOTES, IGNORE_SPACE, NO_KEY_OPTIONS, NO_TABLE_OPTIONS, NO_FIELD_OPTIONS, NO_AUTO_CREATE_USER.

如果使用mysql,为了继续保留大家使用oracle的习惯,可以对mysql的sql_mode设置如下

在my.cnf添加如下配置
[mysqld]
sql_mode='ONLY_FULL_GROUP_BY,NO_AUTO_VALUE_ON_ZERO,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,

ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,PIPES_AS_CONCAT,ANSI_QUOTES'

关于mysql中怎么设置sql_mode就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

mysql中怎么设置sql_mode

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

sql_mode怎么在MySQL中使用

这篇文章将为大家详细讲解有关sql_mode怎么在MySQL中使用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。sql_mode详解sql_mode,会直接影响SQL语法支持和数据校验,它包
2023-06-15

详解MySQL的sql_mode查询与设置

1,执行SQL查看select @@session.sql_mode;全局级别: 查看select @@global.sql_mode;2,修改set @@session.sql_mode='xx_mode' set session sql
2022-05-20

mysql ONLY_FULL_GROUP_BY设置sql_mode无效排查问题(windows)

目录mysql ONLY_FULL_GROUP_BY设置sql_mode无效排查1.查询SQLMODE2.临时修改sql-mode执行SQL3.永久修改sql-mode总结mysql ONLY_FULLjs_GROUP_BY设置sql_mo
mysql ONLY_FULL_GROUP_BY设置sql_mode无效排查问题(windows)
2024-09-07

MySQL中sql_mode修改不生效怎么办

小编给大家分享一下MySQL中sql_mode修改不生效怎么办,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!场景模拟基于业务敏感性的考虑,下面涉及的表、存储过程等
2023-06-14

mysql中sql_mode的作用是什么

sql_mode是MySQL中的一个系统变量,用于控制MySQL对SQL语句的执行和处理的模式。它的作用主要有以下几个方面:严格模式:sql_mode可以设置为严格模式,如"STRICT_ALL_TABLES"。在严格模式下,MySQL会更
mysql中sql_mode的作用是什么
2024-04-09

mysql中sql_mode的用法是什么

在MySQL中,sql_mode是一个会话级别的变量,它用于控制MySQL对SQL语句的处理方式。sql_mode可以设置多个参数组成的字符串,每个参数之间使用逗号分隔。sql_mode的主要作用有以下几个方面:控制MySQL对于无效数据
mysql中sql_mode的用法是什么
2024-04-09

mysql 设置@@sql_mode 解决查询非分组里字段报错问题

1 查询sql_mode SELECT @@sql_mode; 2 把查询的值复制黏贴,去掉ONLY_FULL_GROUP_BY,重新设置值 SET @@sql_mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO
2016-06-27

编程热搜

目录