首页 > mysql > mysql的mode模式

mysql的mode模式

作者:bin
目录
[隐藏]

mysql可以运行在不同的 SQL mode下

这里介绍2种常见的mode

你可以使用以下命令查看当前session的模式

select @@sql_model;

1、严格模式

set session sql_mode='STRICT_TRANS_TABLES';

在严格模式下,变量的长度,日期的合法性等都会被检查

应用场景:

一些不在严格模式下插入数据因为字段长度被截取部分,并且会提示一个wanrning

mysql> insert mode_test values(null,1111111111111111111113333); 
Query OK, 1 row affected, 1 warning (0.00 sec)

mysql> select * from mode_test;
| 1 | 11111111111111111111 |

如果在严格模式下,插入将不会成功,并且返回一个error;

ERROR 1406 (22001): Data too long for column 'name' at row 1

 

2、启用NO_BACKSLASH_ESCAPES

set session sql_mode= 'NO_BACKSLASH_ESCAPES';

在没有设置NO_BACKSLASH_ESCAPES时,插入数据中含有反斜杠”\”,会被转义

而设置了NO_BACKSLASH_ESCAPES时,插入数据反斜杠”\”,编不会被转义了;

 

3、ANSI、TRADITIONAL模式

在ANSI模式下输入非法日期,会变成”0000-00-00 00:00:00″,而在TRADITIONAL模式下,日期非法便无法输入了。

 

您必须 [ 登录 ] 才能发表留言!