sql_mode严格模式(ANSI/TRADITIONAL/STRICT_TRANS_TABLES)
ANSI模式:宽松模式,对插入数据进行校验,如果不符合定义类型或长度,对数据类型调整或截断保存,报warning警告
TRADITIONAL 模式:严格模式,当向mysql数据库插入数据时,进行数据的严格校验,保证错误数据不能插入,报error错误。用于事物时,会进行事物的回滚。
STRICT_TRANS_TABLES模式:严格模式,进行数据的严格校验,错误数据不能插入,报error错误。
查看sql_mode
mysql> select @@sql_mode;
+--------------------------------------------+
| @@sql_mode |
+--------------------------------------------+
| NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+--------------------------------------------+
临时变更为严格模式(关闭重启数据库后会失效)
mysql> set sql_mode='TRADITIONAL,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
Query OK, 0 rows affected (0.00 sec)
mysql> select @@sql_mode;
+------------------------------------------------------------------------------------------------------------------------------------------------------+
| @@sql_mode |
+------------------------------------------------------------------------------------------------------------------------------------------------------+
| STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+------------------------------------------------------------------------------------------------------------------------------------------------------+
永久变更
在my.ini文件中添加或更改下列代码
非严格模式
sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"严格模式
sql-mode="TRADITIONAL,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
或
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
严格模式对insert创建用户的影响
在mysql库的user表中插入一条记录
insert into mysql.user(user,host,password) values ('hello','localhost',password('world123'));
如果当前mysql数据库的sql-mode设置为了严格检查(如TRADITIONAL/STRICT_TRANS_TABLES),则无法使用上述方法插入数据,如果sql-mode已经设置为严格检查,使用上述语句时可能会出现类似如下错误:
ERROR 1364 (HY000): Field ‘ssl_cipher’ doesn’t have a default value
sql_mode严格模式(ANSI/TRADITIONAL/STRICT_TRANS_TABLES)相关推荐
- 银行卡密码键盘 SM4 ECB模式+ANSI X9.8 格式标准(带主账号信息)PIN 加解密示例
文章目录 1.软加解密示例 2.知识点 ①ANSI X9.8 格式标准 ②主密钥,工作密钥加解密 基本概念: 加密种类: 3.密码键盘操作 4.工具 1.软加解密示例 ---------------- ...
- mysql mode_MYSQL中的sql_mode模式
mysql数据库的中有一个环境变量sql_mode,定义了mysql应该支持的sql语法,数据校验等!我们可以通过以下方式查看当前数据库使用的sql_mode: mysql>select @@s ...
- mysql 模式名表名不支持_MySQL sql_mode 说明(及处理一起sql_mode引发的问题)
1. MySQL 莫名变成了 Strict SQL Mode 最近测试组那边反应数据库部分写入失败,app层提示是插入成功,但表里面里面没有产生数据,而两个写入操作的另外一个表有数据.因为 inser ...
- MySQL SQL模式(Mode)
MySQL服务器能够工作在不同的SQL模式下,并能够针对不同的客户端以不同的方式应用这些模式.这样,应用程序就能对服务器进行量身定制以满足自己的需求.这类模式定义了MySQL应支持的SQL语法,以及应 ...
- SQL_MODE设置
1.1. SQL_MODE设置 在生产环境中强烈建议将这个值设置为严格模式,这样有些问题可以在数据库的设计和开发阶段就能实现,而如果在生产环境下运行数据库后发现这类问题,那么修改的代价将变得十分巨 ...
- 【转】MySQL sql_mode 说明(及处理一起 sql_mode 引发的问题)
1. MySQL 莫名变成了 Strict SQL Mode 最近测试组那边反应数据库部分写入失败,app层提示是插入成功,但表里面里面没有产生数据,而两个写入操作的另外一个表有数据.因为 inser ...
- mysql有类似dbms_output.pu_line();_使用MySQL,SQL_MODE有哪些坑,你知道么?
SQL_MODE是MySQL中的一个系统变量(variable),可由多个MODE组成,每个MODE控制一种行为,如是否允许除数为0,日期中是否允许'0000-00-00'值. 为什么需要关注SQL_ ...
- MySQL的sql_mode解析与设置
参考地址: http://blog.csdn.net/ccccalculator/article/details/70432123 因为在MySQL中使用group by 是总是出现1055的错误,这 ...
- MySQL数据库模式_SQL模式
文章目录 查看 MySQL 当前的 SQL 模式 设置 MySQL 的 SQL 模式 SQL 模式介绍 TRADITIONAL(传统模式) STRICT(严格模式) ANSI 模式 MySQL 服务器 ...
最新文章
- Android学习起步 - 新建工程及相关
- Request_获取ServletContext
- python字典的键可以是元组吗_python字典的键可以是元组吗
- c语言数据结构系统化,C语言数据结构+数据库+操作系统
- Guava 实用操作集合
- [学习笔记]在数据库层面应对并发访问产生的问题
- 为什么我的数据库应用程序这么慢?
- ASP输出生成Word 、Excel、Txt文件的方法
- C/C++变量在内存中的位置及初始化问题
- php 集成 spss,spss怎么导入数据
- 大数据杀熟?苹果回应:定价权在开发者那
- 苹果手机如何分享wifi密码_怎样用手机改wifi密码
- JavaScript---网络编程(9-1)--DHTML技术演示(2-1)-表格创建的几种方式
- 测试人员绩效考核KPI指标
- 非线性光学散射偏微分方程组的matlab求解仿真
- AI领域首位图灵奖得主Marvin Minsky:求索“智能”奥秘的一生 | 人物志
- Rootkit技术基础(4)
- 统计素数并求和(20分)
- 编写html获取天气(数据来源theamp;nbs…
- Linux 链路聚合之bond和team