mysql中的sql mode

mysql sql mode小结


1 sql mode可以完成数据的教研,方便数据库迁移,而不需要进行大量修改
2  mysql 5中,默认的椒允许插入超过长度的值,但会给出警告,可以修改为strict_trans_tables,实现严格校验


3 select @@sql_mode; 查看当前模式;

4 设置set (global)session sql_mode='STRICT_TRANS_TABLES';

5 insert或update过程中,如果sql_mode处于traditional模式,则mod(x,0)发生错误,非严格模式下返回null;

6 启用no_backslash_esacpes模式,让反斜线成为普通字符,在导入数据时,如果数据中有反斜线,则可以启用这个

7 ansi模式更符合标准sql,
   strict_trans_tables模式,不允许非法日期,超过字段长度,给出错误
   traditional模式在事务表中,出现错误会回滚

8
如果mysql与其它异构数据库之间有数据移植的需求的话,那么下面的sql_mode的组合设置可以达到相应的效果:
数据库 Sql_mode值
DB2 PIPES_AS_CONCAT、ANSI_QUOTES、IGNORE_SPACE、NO_KEY_OPTIONS、NO_TABLE_OPTIONS、NO_FIELD_OPTIONS
MAXDB PIPES_AS_CONCAT、ANSI_QUOTES、IGNORE_SPACE、NO_KEY_OPTIONS、NO_TABLE_OPTIONS、NO_FIELD_OPTIONS、 NO_AUTO_CREATE_USER
MSSQL PIPES_AS_CONCAT、ANSI_QUOTES、IGNORE_SPACE、NO_KEY_OPTIONS、NO_TABLE_OPTIONS、 NO_FIELD_OPTIONS
ORACLE PIPES_AS_CONCAT、ANSI_QUOTES、IGNORE_SPACE、NO_KEY_OPTIONS、NO_TABLE_OPTIONS、NO_FIELD_OPTIONS、NO_AUTO_CREATE_USER
POSTGRESQL PIPES_AS_CONCAT、ANSI_QUOTES、IGNORE_SPACE、NO_KEY_OPTIONS、NO_TABLE_OPTIONS、NO_FIELD_OPTIONS

   数据迁移过程中,可以设置为no_table_options模式

猜你喜欢

转载自jackyrong.iteye.com/blog/2201857