我正在嘗試創建下列表格設計,但我在下面得到了這個錯誤,我該如何在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