根据 mysql5.0以上版本 strict mode (STRICT_TRANS_TABLES)
的限制:这个模式是造成这类错误的根本原因
不支持对not null字段插入null值
不支持对自增长字段插入''值,可插入null值
不支持 text 字段有默认值
方案一:(自动增长的情况可以尝试这个方案)
在my.ini里找到
sql-mode=”STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION”
把其中的STRICT_TRANS_TABLES,去掉,
或者把sql-mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
方案二:
待续
================================邪恶的分割线=================================
一些基本的常识:
1. 查看默认的sql mode模式: select
@@sql_mode;
2.在Mysql5.0以上版本中,有三种sql
mode模式(ANSI、TRADITIONAL和STRICT_TRANS_TABLES(严格模式)).
3.通过设置不同的sql
mode,可以在不同严格程序进行数据校验,有效地保证了数据准确性.
4.通过设置sql
mode为STRICT_TRANS_TABLES(严格模式)来实现数据的严格校检,使错误数据不能插入,从而保证数据准确性.
5.通过设置sql
mode为ANSI模式,来保证大多数SQL符合标准SQL的语法,这样在不同数据库之间迁移时,不需要对业务修改太多.
6.非严格模式:会对语法的限制降到最低,导致很多不规范的语句都可以执行,会导致歧义.
严格模式:可以实现严格校检,使错误数据不能插入,从而保证数据准确性.
7.