Home > Database > Mysql Tutorial > 十二、mysql sql_mode 简学_MySQL

十二、mysql sql_mode 简学_MySQL

WBOY
Release: 2016-05-31 08:46:46
Original
1118 people have browsed it
1.一般默认情况下sql_mode默认为空,也就是不严格的sql检查2.如果sql_mode为空的情况下,测试:    create table tt3 (name char(2)); //定义一个name字段长度为定长2的tt3表    insert into tt3 values ('wo'); //正常插入,无措    insert into tt3 values ('woshi'); //正常插入,但值已被截取成了“wo”        修改sql_mode为严格模式:    set session sql_mode = 'STRICT_TRANS_TABLES';    insert into tt3 values ('woshi'); //报错:ERROR 1406 (22001): Data too long for column 'name' at row 1    也就是说严格情况下,是严格控制字段输入值的长度的3.set session sql_mode = 'STRICT_TRANS_TABLES'; 本次连接生效  set global sql_mode  = 'STRICT_TRANS_TABLES'; 本次连接不生效,新的连接生效  4.set session sql_mode = 'NO_BACKSLASH_ESCAPES'; 开启后,斜杠将会被当作字符串插入  比如 insert into tt3 values ('/1'); ,开启之前插入"1",开启之后插入"/1";  5.set session sql_mode = 'PIPES_AS_CONCAT'; 开启后,||将被当做连接符  比如 select "beijing"||2008; 开启之前返回1,(进行或运算),开启之后返回"beijin2008"6.常见的sql_mode  ANSI::更接近标准的sql  STRICT_TRANS_TABLES::严格模式,不允许非法日期,不允许超出字段长度定义的值  TRADITIONAL::严格模式,插入不正确的值将直接报错,一般可用在事务的时候
Copy after login

 

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template