我正在尝试创建下列表格设计,但我在下面得到了这个错误,我该如何在arrivaltimes
表格中设置stops
表的外键?创建外键的语法错误
1064 - 您的SQL语法错误;检查对应于你的MySQL服务器版本的手册正确的语法使用近 'FOREIGN KEY参考站(stop_id))' 第4行
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("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 REFERENCES stops(stop_id))");
感谢它的作品,但是'fk_stop_id'是什么? – MrPencil
@MrPencil:它看起来像一个约束名称,我不知道这是必要的,但确实是必要的。如果你忽略掉fk_stop_id会发生什么? –
如果您没有指定名称,MySQL将生成一个名称。如果您希望删除外键(例如在模式回滚脚本中),则需要指定名称。因此,自己分配一个好主意。 – Asaph