2017-03-16 83 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。 。 。添加没有名称的约束是没有错的。但是,我喜欢明确并给出有意义的约束名称。 –

相关问题