我今天做一个SQL INSERT 操作时出现一个问题。错误代码如下: |
|
![]() |
你没赋值吧。
|
![]() |
数据库字段你设置个默认为””不就是了
default “””” NOT NULL |
![]() |
|
![]() |
是啊,我是没有赋值。你可能没有明白我表达的意思。 |
![]() |
假如的数据库字段有ID,NAME,PASSWORD 都是不为空的 |
![]() |
那么你设置个列自增
|
![]() |
那我执行insert xxx (id,name)values(“”xxx””,””xxx””); |
![]() |
不是啊,我的数据库是所有的字段都不为null的,如果出现没有插入某个字段,数据库会默认帮我填充空字符串。 |
![]() |
|
![]() |
supplier_id是什么类型?mysql什么版本?在Enable Strict Mode为false的情况下,如果非NULL字段不填值,是按当前字段的默认值填充的。
|
![]() |
序列没有初始化把。试试加 你的bean进行序列化处理:public class TCustomerBasic implements Serializable { |
![]() |
这个是字符串类型的,是的,我就是希望如果我没有填写的字段的话,数据库默认帮我自动插入当前字段类型的默认值,而不是通过我自己去设置默认值的情况而帮我插入。 |
![]() |
我用的是纯JDBC,没有使用bean操作。 |
![]() |
mysql 是5.6.17 |
![]() |
设置可以默认为空
|
![]() |
Enable Strict Mode是true还是false?
|
![]() |
不清楚啊,这个东西我没有听说过,我反正是没有动过,默认值是什么就是什么。请问这个东西是在哪里设置 |
![]() |
mysql所在机器是什么系统?
|
![]() 20分 |
1、首先先说你报错这句话:Field “”supplier_id”” doesn””t have a default value。由此可以看出你supplier_id这个字段肯定是不能为空的,而你做插入操作的时候根本就没有给这个字段赋值,又没有赋默认值,所以报错了。
2、你想解决的问题是:就是你不写这个字段,不给他赋值,他也能插入成功,不报错。自动拿空字符串去填充。 解决办法: 怎么样?解决你的问题了吗 |