MySQL严格模式Strict Mode说明

来源:互联网 发布:oppor7plus怎么传软件 编辑:程序博客网 时间:2024/06/06 03:41

何为MySQL的严格模式,简单来说就是MySQL自身对数据进行严格的校验(格式、长度、类型等),比如一个整型字段我们写入一个字符串类型的数据,在非严格模式下MySQL不会报错,同样如果定义了char或varchar类型的字段,当写入或更新的数据超过了定义的长度也不会报错。
        我认为这个对于编程来说没有任何好处,虽然我们尽量在代码中做数据校验。MySQL开启了严格模式从一定程序上来讲是对我们代码的一种测试,如果我们的开发环境没有开启严格模式在开发过程中也没有遇到错误,那么在上线或代码移植的时候将有可能出现不兼容的情况,因此在开发过程做最好开启MySQL的严格模式。

 

1.开启与关闭Strict Mode方法

找到MySQL安装目录下的my.cnf(windows系统则是my.ini)文件

在sql_mode中加入STRICT_TRANS_TABLES则表示开启严格模式,如没有加入则表示非严格模式,修改后重启mysql即可

例如这就表示开启了严格模式: 
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

如果查找不到sql-mode=则在[mysqld]下加入即可。

 

2.Strict Mode功能说明

  • 不支持对not null字段插入null值
  • 不支持对自增长字段插入' '值
  • 不支持text字段有默认值

        总结,使用mysql严格模式可以使数据更加安全严格,缺点是减少了对空数据入库的兼容性。建议开发环境使用严格模式以提高代码的质量及对数据的严谨性。

0 0