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

che*_*rex 10 java mysql sql

我收到一条错误消息:

 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)
Run Code Online (Sandbox Code Playgroud)

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

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

kha*_*val 23

错误是自我解释的.您的列supplier_id没有默认值.所以在插入过程中,mysql无法弄清楚要在列中插入什么supplier_id.您可以执行以下三种操作之一: -
1.向列添加默认值supplier_id使用 -

ALTER TABLE `xxx` ALTER `supplier_id` SET DEFAULT NULL
Run Code Online (Sandbox Code Playgroud)


2. supplier_id在插入期间为色谱柱提供一些值.
3.向列添加自动增量,并使用以下代码向其添加主键: -

ALTER TABLE `xxx` CHANGE `supplier_id` `supplier_id` INT(10)AUTO_INCREMENT PRIMARY KEY;
Run Code Online (Sandbox Code Playgroud)