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

新手上路,请多包涵

我从中收到一条错误消息:

  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');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

原文由 chendurex 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 519
2 个回答

该错误是不言自明的。您的列 supplier_id 没有默认值。所以在插入过程中,mysql无法弄清楚要在列 supplier_id 中插入什么。您可以做以下三件事中的任何一件:-

1.为列添加默认值 supplier_id 使用-

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

2. 在插入期间为 supplier_id 列提供一些值。

3. 向列添加自动增量并使用代码向其添加主键:-

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

原文由 DDD 发布,翻译遵循 CC BY-SA 3.0 许可协议

要解决此问题,请在执行 INSERT supplier_id 提供一个值,或者在数据库中创建列 nullable

原文由 peter.petrov 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题