2017-03-16 70 views
0

我有一個episodeepisodeID(PK),airdate,和title當我試圖添加一個外鍵時,我總是收到錯誤,我做錯了什麼?

我有一個showshowID(PK),其是VARCHAR(5)

我使用以下:

ALTER TABLE episode 
ADD FOREIGN KEY (showID) 
REFERENCES show(showID); 

,我得到這個錯誤:

1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'show(showID)' at line 3

回答

1

你想添加一個外鍵約束,所以我建議給它命名。

然而,你的問題是,show是一個保留字:

ALTER TABLE episode ADD CONSTRAINT fk_episode_showid 
    FOREIGN KEY (showID) REFERENCES `show`(showID); 

我平時名複數(shows而不是show)表。這兩個都捕捉到它們包含多行。而且,這也使他們不太可能與保留字發生衝突。

+0

謝謝您的回答 - 我刪除了現有的表格,將節目更改爲「節目」,並且順利進行。我必須問,ADD CONSTRAINT在做什麼?我只是使用ADD FOREIGN KEY等,然後使用PRIMARY KEY中的那些...我做錯了嗎?在事實之後,我如何驗證外鍵已經通過? –

+0

@NatalieSpatharakis。 。 。添加沒有名稱的約束是沒有錯的。但是,我喜歡明確並給出有意義的約束名稱。 –

相關問題