mysql sql_mode数据验证检查

这篇具有很好参考价值的文章主要介绍了mysql sql_mode数据验证检查。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

sql_mode 功能

sql_mode 会影响MySQL支持的sql语法以及执行的数据验证检查。通过设置sql_mode ,可以完成不同严格程度的数据校验,有效地保障数据准确性

sql_mode 严格模式 VS 宽松模式

宽松模式
比如,插入的数据不满足 表的数据类型,也可能接受,并且不报错,只会有警告而且。
一个字段设置 char(10),如果插入 1234567890ABC,会ABC会自动舍去,只保留1234567890,sql不报错的。
mysql sql_mode数据验证检查,mysql,sql,adb

** 严格模式 ** 默认是严格模式
插入数据类型,不能隐式转换的,最终就会报错。
长度规定长度,会报错。

设置sql_mode

临时设置模式
set global sql_mode =‘XXXX’ ; ## 全局 重启mysql 服务 就失效
set session sql_mode=‘XXXX’; ## 当前会话 关闭会话 就失效
永久设置模式
windows 系统 设置 my.ini (一般位置 C:\ProgramData\MySQL\MySQL Server 5.7 | C:\ProgramData\MySQL\MySQL Server 8.0),
但 要重启 mysql 服务 才生效
mysql sql_mode数据验证检查,mysql,sql,adb
linux /etc/my.cnf

生成环境,一般不能随便重启 mysql服务的,所有采用 临时设置方法+永久设置方式 来解决线上问题。

查看mysql sql_mode

show variables like ‘sql_mode’;

select @@global.sql_mode;

select @@session.sql_mode;

select sql_mode
mysql sql_mode数据验证检查,mysql,sql,adb
mysql sql_mode数据验证检查,mysql,sql,adb

sql_mode 参数值 可以设置

mysql sql_mode数据验证检查,mysql,sql,adb文章来源地址https://www.toymoban.com/news/detail-683077.html

到了这里,关于mysql sql_mode数据验证检查的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MySQL错误sql_mode=only_full_group_by完美解决方案

    mysql是高版本,当执行group by时,select的字段不属于group by的字段的话,sql语句就会报错。 错误提示:this is incompatible with sql_mode=only_full_group_by 1.查询数据库版本: SELECT VERSION(); 2.查看sql_mode的语句: select @@GLOBAL.sql_mode; 3.临时解决方案: 去掉ONLY_FULL_GROUP_BY,重新设置值。 SET

    2023年04月09日
    浏览(29)
  • MySQL运维实战(4.3) SQL_MODE之ONLY_FULL_GROUP_BY

    作者:俊达 设置ONLY_FULL_GROUP_BY时,对有GROUP BY子句SQL,SELECT的字段要么是GROUP BY中的字段,要么对字段进行聚合运算(如 SUM、COUNT 等),否则SQL执行报错。 不设置ONLY_FULL_GROUP_BY则允许更宽松的行为,即使查询违反了这一规则,MySQL 也会接受,即对于不在GROUP BY字段,不使用聚

    2024年01月19日
    浏览(38)
  • MySQL:报错this is incompatible with sql_mode=only_full_group_by

    在mysql 工具 搜索或者插入数据时报下面错误: ERROR 1055 (42000): Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column \\\'database_tl.emp.id\\\' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by 原因: 首先,我们看一下group by的语法

    2024年01月20日
    浏览(42)
  • MySQL运维实战(4.4) SQL_MODE之STRICT_TRANS_TABLES和STRICT_ALL_TABLES

    作者:俊达 在MySQL中,STRICT模式主要用于控制数据库的行为,有助于保持数据的一致性和完整性,特别是在涉及到数据写入、更新和其他操作时的约束。 如果设置STRICT模式,MySQL会更加严格地执行数据写入和更新等操作,当数据不符合字段定义或者违反了约束条件,MySQL将抛

    2024年01月18日
    浏览(36)
  • mysql 8.0 找不到my.ini配置文件以及报sql_mode=only_full_group_by解决方案

    sql_mode=only_full_group_by问题产生原因:MySQL 5.7.5及以上功能依赖检测功能。如果启用了ONLY_FULL_GROUP_BY SQL模式(默认情况下),MySQL将拒绝选择列表,HAVING条件或ORDER BY列表的查询引用在GROUP BY子句中既未命名的非集合列,也不在功能上依赖于它们。 1、navcat中新建查询: select @@

    2024年01月23日
    浏览(43)
  • MySQL运维实战(4.5) SQL_MODE之NO_ZERO_DATE和NO_ZERO_IN_DATE

    作者:俊达 NO_ZERO_DATE 和 NO_ZERO_IN_DATE这两个SQL MODE,主要用于确保日期字段不包含非法的零值,以提高数据的完整性和准确性。 1、**NO_ZERO_DATE 模式:**日期中不允许使用 ‘0000-00-00’ 这样的零值。如果启用了该模式,MySQL将拒绝插入或更新包含这种零值的日期数据。 2、**NO_

    2024年01月19日
    浏览(46)
  • 解决MySQL-this is incompatible with sql_mode=only_full_group_by 问题(提供window、Linux、docker解决方法和流程)

    出现这个问题是因为,对于GROUP BY操作,如果在SELECT中的列,没有在GROUP BY中出现,那么这个SQL是不合法的,因为列不在GROUP BY从句中。 也就是说如果我分组查询,比如我表里有三个字段 id、name、type,我根据type分组查询,那么结果集里就不能包含name字段。 要想解决这个问题

    2024年02月04日
    浏览(37)
  • MySQL报错:sql_mode=only_full_group_by 4种解决方法含举例,轻松解决ONLY_FULL_GROUP_BY的报错问题

    ​ 作为初学者,我们在使用MySQL的时候总是会遇到各种各样的报错,让人头痛不已。其中有一种报错,sql_mode=only_full_group_by,十分常见,每次都是老长的一串出现,然后带走你所有的好心情。 ​​ 出现这样的报错,并不是因为你的代码写得不好,而是因为在MySQL 5.7后,MySQ

    2024年02月22日
    浏览(40)
  • SQL 报错 sql_mode=only_full_group_by 问题

    SQL 报错 sql_mode=only_full_group_by 问题 原因分析 一、原理层面 这个错误发生在mysql 5.7.5 版本及以上版本会出现的问题: mysql 5.7.5版本以上默认的sql配置是:sql_mode=“ONLY_FULL_GROUP_BY”,这个配置严格执行了\\\"SQL92标准\\\"。 很多从5.6升级到5.7时,为了语法兼容,大部分都会选择调整sql

    2024年02月15日
    浏览(43)
  • 看了mysql8.0官网,发现set sql_mode原来有可以不用修改my.cnf或mysqld-auto.cnf就可以持久化系统变量的方式

    @@GLOBAL.sql_mode: 全局级别的设置,影响所有新的客户端连接。通常需要具有高级权限才能修改,且修改后对尚未建立连接的新会话生效,对当前已存在的会话无效。MySQL服务器重启后,如果没有在配置文件中永久设定,全局设置将恢复到服务器启动时的默认值或配置文件中的设

    2024年04月15日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包