Field 'id' doesn't have a default value

本文介绍了在MySQL中遇到“Field 'id' doesn't have a default value”错误的原因及解决方案,包括调整sql_mode配置、禁用严格模式以及为主键设置默认值的方法。
[quote]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的,但是没有设置为自增的!!或者数据定义的时候设置一个默认值就可以了。 [/quote]
参考文章引自:[url]http://hi.baidu.com/cendi/blog/item/69ff8609b18455296a60fbb2.html[/url]
1、和2方法都是通过设置sql-mod,2的那个方法其实是通过mysql的实例向导进行设置,也等于自己手动设置的时候把mode属性设置了,然后重启服务。
3的最简单给一个默认值呗。
刚刚是在做级联的时候没有设置默认值。而且是另一端设置值的,所以用第三种方法设置个默认值给他呗 :wink:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值