java.sql.SQLException : Field 'id' doesn't have a default value 异常

标签 java mysql sql tsql primary-key

我正在尝试将数据插入到 arrivaltimes 表中,但出现以下错误:

java.sql.SQLException: Field 'id' doesn't have a default value

stt.execute("CREATE TABLE IF NOT EXISTS stops"
            + "(stop_id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, "
            + " name varchar(30) NOT NULL, "
            + " route INT(11) NOT NULL, "
            + " lat double(10,6) NOT NULL, "
            + " longi double(10,6)NOT NULL) " );

    stt.execute("INSERT INTO stops(name, route, lat, longi) values"
            + "('blabla', '1', '93.838039', '15.700440' ),"
            + "('backery', '9', '98.868863', '19.665438' )" );

    stt.execute("CREATE TABLE IF NOT EXISTS arrivaltimes(id INT(11) NOT NULL PRIMARY KEY,"
            +  " weekday VARCHAR(20) NOT NULL,"
            + "arrivaltime time NOT NULL,"
            + " stop_id INT, FOREIGN KEY fk_stop_id(stop_id) REFERENCES stops(stop_id) )" );
    //The error appears in this execution statement.
    stt.execute("INSERT INTO arrivaltimes(weekday, arrivaltime) values"
            + "('mon-fri', '05:30' ),"
            + "('mon-fri', '06:07' )" );

最佳答案

您在到达时间表中缺少主键的 AUTO INCREMENT。只需要在创建表时添加AUTO_INCREMENT

stt.execute("CREATE TABLE IF NOT EXISTS arrivaltimes(id INT(11) NOT NULL  AUTO_INCREMENT PRIMARY KEY,"
            +  " weekday VARCHAR(20) NOT NULL,"
            + "arrivaltime time NOT NULL,"
            + " stop_id INT, FOREIGN KEY fk_stop_id(stop_id) REFERENCES stops(stop_id) )" );

关于java.sql.SQLException : Field 'id' doesn't have a default value 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30133548/

相关文章:

Java Enterprise 没有出现在 IntelliJ 中

java - Tomcat 7 中错误代码 500 的自定义错误页面

php - 将值发布到数据库

Mysql 使用用户变量作为临时存储来交换具有唯一值的行的效率和安全性

java - 在子列表上调用 size() 时出现 ConcurrentModificationException

java - 为什么 System.getProperty ("user.name");无法从命令行运行?

mysql - MySQL 上关联多个表

php - 如何获取所选按钮的 ID?

php - 在mysql中查找一个整数的排名

sql - 如何正确连接表并使用 group by 来汇总 MySQL 中的数据?