引用
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的最简单给一个默认值呗。
刚刚是在做级联的时候没有设置默认值。而且是另一端设置值的,所以用第三种方法设置个默认值给他呗
分享到:
相关推荐
在MySQL中,`Field ‘***’ doesn’t have a default value`错误通常发生在尝试插入数据到表中时,如果某个字段没有指定默认值(default value)且输入的数据未提供该字段的值,系统会抛出这个错误。此错误表明MySQL...
### 解决Field 'ssl_cipher' doesn't have a default value的错误 #### 背景介绍 在使用MySQL数据库的过程中,可能会遇到一个特定的错误:“Field 'ssl_cipher' doesn't have a default value”。这个错误通常发生...
如果你的数据库表中 `id` 字段的数据类型是字符串或其他非数字类型,那么就会出现“Field 'id' doesn't have a default value”的异常,因为数据库无法接受这种类型转换。 为了解决这个问题,我们需要告诉 MyBatis-...
- The field "Default Gateway" has been added to the NetLink's configuration property page - The string write from the OPC Server sometimes failed . This bug has been fixed - After driver uninstall...
5. 在执行添加数据时出现 “Field 'name' doesn't have a default value” 错误,可能导致错误的原因是( )。 a) INSERT 语句出现了语法问题 b) name 字段没有指定默认值,且添加了 NOT NULL 约束 c) name 字段...