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

Mysql的SQL_MODE常用值有哪些

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

北京

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

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

看不清楚,换张图片

免费获取短信验证码

Mysql的SQL_MODE常用值有哪些

这篇文章主要讲解了“Mysql的SQL_MODE常用值有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Mysql的SQL_MODE常用值有哪些”吧!

SQL_SAFE_UPDATES

在做数据库实验的时候对mysql表进行UPDATE操作时,mysql给了我一个错误:Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disable safe mode

原来mysql有个叫SQL_SAFE_UPDATES的变量。查了好久,全部中文结果都是copy来copy去的,而且也只是简单给出解决方式。后来找到老外网,上面这么说:MySQL will refuse to run the UPDATE or DELETE query if executed without the WHERE clause or LIMIT clause. MySQL will also refuse the query which have WHERE clause but there is no condition with the KEY column(自己翻译吧)。但是还是不知道这个update safe model是干嘛用的,只能简单猜测:为了数据的安全。

SQL_SAFE_UPDATES有两个取值:0和1。SQL_SAFE_UPDATES = 1时,不带where和limit条件的update和delete操作语句是无法执行的,即使是有where和limit条件但不带key column的update和delete也不能执行。SQL_SAFE_UPDATES = 0时,update和delete操作将会顺利执行。那么很显然,此变量的默认值是1。如图改完后update操作顺利完成:
Mysql的SQL_MODE常用值有哪些 

SQL_MODE(sql语法模式)
  1. 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常用值有哪些”的内容了,经过本文的学习后,相信大家对Mysql的SQL_MODE常用值有哪些这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

免责声明:

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

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

Mysql的SQL_MODE常用值有哪些

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

下载Word文档

猜你喜欢

sql_mode的模式有哪些

这篇文章主要介绍“sql_mode的模式有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“sql_mode的模式有哪些”文章能帮助大家解决问题。sql_mode的各模
2023-03-20

MySQL常用引擎有哪些

本文小编为大家详细介绍“MySQL常用引擎有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“MySQL常用引擎有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。前言:MySQL 有很多存储引擎(也叫数据引擎
2023-07-01

mysql常用命令有哪些

mysql提供了多种常用命令,包括:创建和删除数据库(create database、drop database),管理表(create table、alter table、drop table),操作数据(insert、update、de
mysql常用命令有哪些
2024-04-14

编程热搜

目录