Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql forgein键的值为NULL_Mysql_Sql_Jdbc - Fatal编程技术网

Mysql forgein键的值为NULL

Mysql forgein键的值为NULL,mysql,sql,jdbc,Mysql,Sql,Jdbc,我正在尝试设计数据库表,以从路线表中获取路线,具体取决于骑手的位置,时间必须达到当前时间。当我在所有表中插入一些数据时,我遇到了一个问题,routes和arrivaltimes表中的stop\u id是NULL?数据库设计有问题吗 一站多路线。一条路线有很多站点。一站有很多到达时间 谢谢你的帮助 CREATE TABLE IF NOT EXISTS stops (stop_id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, na

我正在尝试设计数据库表,以从
路线
表中获取
路线
,具体取决于骑手的位置,时间必须达到当前时间。当我在所有表中插入一些数据时,我遇到了一个问题,
routes
arrivaltimes
表中的stop\u id是
NULL
?数据库设计有问题吗

一站多路线。一条路线有很多站点。一站有很多到达时间

谢谢你的帮助

  CREATE TABLE IF NOT EXISTS stops
    (stop_id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, 
     name varchar(30) NOT NULL, 
     lat double(10,6) NOT NULL, 
     longi double(10,6)NOT NULL) 

  INSERT INTO stops(name,  lat, longi) values
      ('ABC', '63.838039', '18.700440' ),
      ('DEF', '63.840642', '18.701246' ),             
      ('HIG', '63.868863', '18.665438' )

   CREATE TABLE IF NOT EXISTS arrivaltimes(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) )

   INSERT INTO arrivaltimes(weekday, arrivaltime) values
       ('mon-fri', '05:30' ),
       ('mon-fri', '06:07' )

  CREATE TABLE IF NOT EXISTS routes
    (routes_id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
     route INT(11) NOT NULL, 
     stop_id INT, FOREIGN KEY fk_stop_id(stop_id) REFERENCES stops(stop_id) )

  INSERT INTO routes(route) values
     ('1'),
     ('9')

请注意:外键引用本身不会插入任何内容

  • 一个表中的外键指向另一个表中的主键

  • 外键约束防止将无效数据插入外键列,因为它必须是它所指向的表中包含的值之一

结果中显示的内容是正确的。在将记录插入routes和ArrivalTimes表时,尚未传递stop_id的任何值


更改insert语句应该可以解决这个问题。

请去掉
stt.execute()
wrappers,直接显示SQL代码即可。这将比现在的可读性强得多。您必须在最后一条sql语句中显式插入外键的值以及其他属性,如route。