> 데이터 베이스 > MySQL 튜토리얼 > 十二、mysql sql_mode 简学_MySQL

十二、mysql sql_mode 简学_MySQL

WBOY
풀어 주다: 2016-05-31 08:46:46
원래의
1120명이 탐색했습니다.
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::严格模式,插入不正确的值将直接报错,一般可用在事务的时候
로그인 후 복사

 

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿