我正在尝试创建下面的表设计,但是我在下面得到了这个错误--如何在stops表中为arrivaltimes表设置外键?
1064 -您的SQL语法有一个错误;请检查与您的MySQL服务器版本相对应的手册,以获得在第4行附近使用“外键引用停止(Stop_id)”的正确语法。
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) )" );发布于 2015-05-08 20:16:42
变化
stop_id INT FOREIGN KEY REFERENCES stops(stop_id)至
stop_id INT, FOREIGN KEY fk_stop_id(stop_id) REFERENCES stops(stop_id)发布于 2015-05-08 20:19:17
我已经更新了查询,请注意外键的语法,这里有错误。干杯!
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,"
+ " FOREIGN KEY (stop_id) REFERENCES stops(stop_id) )" );发布于 2015-05-09 08:12:59
如果您查看 syntax,那么您可以选择:
内联定义(注意没有FOREIGN KEY)
stop_id INT REFERENCES stops(stop_id)还有一个明确的定义:
stop_id INT,
FOREIGN KEY (stop_id) REFERENCES stops(stop_id)或者更好(带有命名约束):
stop_id INT,
CONSTRAINT fk_arrivaltimes_stops FOREIGN KEY (stop_id) REFERENCES stops(stop_id)https://stackoverflow.com/questions/30132136
复制相似问题