2014-03-01 127 views
0

我有兩個表格電影和電影。在電影表中,有一個名爲cinema_id的主鍵。我正試圖從電影表中將這個主鍵作爲電影表中的一個外鍵。 所以我用MySQL數據庫。無法添加外鍵

alter table movies 
add foreign key(cinema_id) 
references cinema(cinema_id) 

但我得到一個錯誤,指出消息:

#1072 - 鍵列 'cinema_id' 不表存在

所以我加了一個列,然後嘗試再次創建一個外鍵,並有一條錯誤消息說:

#14 52 - 無法添加或更新子行:外鍵約束失敗

我已經檢查過列類型,它是相同的。有人可以幫助我嗎?我不知道該怎麼做。

+0

雖然增加FK你必須檢查所有數據直接傳送它的約束上。在查詢之前使用'SET foreign_key_checks = 0;',如果你想強制,在後面設置它爲1。 –

+0

@TomaszKowalczyk我不明白什麼SET foreign_key_checks = 0;會做? – User4356

+0

我不想粗魯,但Google停止了工作? –

回答

0

您正在使用錯誤的語法。你必須創建一個約束,而不是簡單地增加一個外鍵.. 試試這個:

ALTER TABLE MOVIES ADD CONSTRAINT MOVIES_CINEMA_FK 
FOREIGN KEY (CINEMA_ID) 
REFERENCES CINEMA(CINEMA_ID); 

MySQL Documentation

+0

嗨,我試過這個,它仍然給我同樣的錯誤 – User4356

+0

你有什麼記錄在表'電影'?如果是的話,你必須確定,這些值也在表格'cinema' – agim

+0

我在電影和電影表中都有假數據。所以電影表中的列也必須在電影表中? – User4356