2013-02-16 50 views
0

我試着去使用此代碼:更新在MySQL表的外鍵

alter table KUNDE 
(foreign key (`PostNr`) references POSTSTED(`Postnr`); 

我收到此錯誤信息:

您的SQL語法錯誤;檢查對應於您的MySQL服務器版本的手冊,以找到在第2行'(外鍵(PostNr)引用POSTSTED(Postnr)'處使用的正確語法。

我不明白我的語法有什麼問題。好的。

回答

1

correct ALTER TABLE syntax使用ADD關鍵字和沒有()周圍的表達(僅圍繞所述列)。

alter table `KUNDE` ADD foreign key (`PostNr`) references `POSTSTED` (`Postnr`); 

此外,與任何一個按鍵,確保KUNDE.PostNrPOSTSTED.Postnr具有相同的數據類型,並且POSTSTED.PostnrPRIMARY KEY或者具有另外定義的索引。

+1

此外,還有** PostNr **和** Postnr **。檢查其他表是否具有相同的字段名稱。 – 2013-02-16 13:15:31

+0

取決於聯盟,他們很可能不區分大小寫。 – Kermit 2013-02-16 13:37:07

+0

@DiH:不,列名是**不區分大小寫。請參閱:[標識符區分大小寫](http://dev.mysql.com/doc/refman/5.5/en/identifier-case-sensitivity.html),其中指出***「列,索引,存儲例程和事件名稱在任何平臺上都不區分大小寫,也不是列別名。「*** – 2013-02-16 13:54:18