Field 'id' doesn't have a default value

引用
Field 'id' doesn't have a default value问题所在:原来是数据设计的时候,把主键的类型定义为int的,原本想是用自增的方式来的,写sql语句的时候没有加上auto_increment,所以在数据存储的时候老是报Field 'id' doesn't have a default value,id根本就没有值啊!!
在这里总结一下:
1、打开my.ini,查找
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

修改为
sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

然后重启MYSQL

2、MySQL 5 uses a strict mode which needs to be disabled.
In Windows, Goto Start-->Programs-->MySQL->MySQL Instance Config Wizard. Follow through the Reconfigure Instance option-->Detailed Configuration-->Continue Next a few screens. At the bottom under Enable TCP/IP option there is 'Enable Strict Mode'. Deslect this option (no tick). Save changes and MySQL will restart.

3、看看你的数据库定义的时候是不是把主键生成方式设置为int的,但是没有设置为自增的!!或者数据定义的时候设置一个默认值就可以了。

参考文章引自: http://hi.baidu.com/cendi/blog/item/69ff8609b18455296a60fbb2.html
1、和2方法都是通过设置sql-mod,2的那个方法其实是通过mysql的实例向导进行设置,也等于自己手动设置的时候把mode属性设置了,然后重启服务。
3的最简单给一个默认值呗。
刚刚是在做级联的时候没有设置默认值。而且是另一端设置值的,所以用第三种方法设置个默认值给他呗

你可能感兴趣的:(html,sql,mysql,windows,Blog)