2013-02-16 72 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