java.sql.SQLException:字段“supplier_id”没有默认值

2022-09-02 03:18:32

我收到一条错误消息:

 java.sql.SQLException: Field 'supplier_id' doesn't have a default value
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:946)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2985)
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1631)
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1723)
    at com.mysql.jdbc.Connection.execSQL(Connection.java:3277)
    at com.mysql.jdbc.Statement.executeUpdate(Statement.java:1402)
    at com.mysql.jdbc.Statement.executeUpdate(Statement.java:1317)

每个人都可以帮助我吗?我的数据库字段不为空。但我想得到这个结果:

insert into xxx(name,password)values('xxx','xxx');和两者的成功(在客户端中都是成功的,但在java代码中是错误的,错误代码在顶部标题),而不是假的;mysql jar is mysql-connector-java-5.0.8insert into xxx(name,password,man)values('xxx','xxx','xxx');insert into xxx(name,password)values('xxx','xxx')


答案 1

该错误是不言自明的。您的列没有默认值。因此,在插入过程中,mysql无法弄清楚要在列中插入的内容。你可以做这三件事中的任何一件事:-
1。将默认值添加到列中使用 -supplier_idsupplier_idsupplier_id

ALTER TABLE `xxx` ALTER `supplier_id` SET DEFAULT NULL


2. 在插入过程中为列提供一些值。
3. 向列添加自动增量,并使用代码向其添加主键:-supplier_id

ALTER TABLE `xxx` CHANGE `supplier_id` `supplier_id` INT(10)AUTO_INCREMENT PRIMARY KEY;

答案 2

要解决此问题,请提供一个值,以便在执行 时执行 ,或者在 DB 中创建该列。supplier_idINSERTnullable


推荐