码迷,mamicode.com
首页 > 数据库 > 详细

十二、mysql sql_mode 简学

时间:2014-07-12 09:16:32      阅读:235      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   os   for   io   

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::严格模式,插入不正确的值将直接报错,一般可用在事务的时候

 

十二、mysql sql_mode 简学,布布扣,bubuko.com

十二、mysql sql_mode 简学

标签:style   blog   color   os   for   io   

原文地址:http://www.cnblogs.com/shibazi/p/3832682.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!