zoukankan      html  css  js  c++  java
  • 十二、mysql sql_mode 简学

    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::严格模式,插入不正确的值将直接报错,一般可用在事务的时候
  • 相关阅读:
    [BJOI2015]树的同构 && 树哈希教程
    「HNOI2014」世界树
    CF613D Kingdom and its Cities
    「HEOI2014」大工程
    虚树教程
    [SDOI2011]消耗战
    CF1216E Numerical Sequence
    vim8.1安装
    luoguP5024 保卫王国
    动态DP教程
  • 原文地址:https://www.cnblogs.com/shibazi/p/3832682.html
Copyright © 2011-2022 走看看