2017-03-16 16 views
0

私は次のように使用しています(5)外部キーを追加しようとするとエラーが発生しますが、何が間違っていますか?

IがVARCHARであるshowID(PK)とshowテーブルを有するepisodeID(PK)、airdate、及びtitle

episodeテーブルを有する:

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

外部キー制約を追加したいので、名前を付けることをお勧めします。私は通常、複数(showsではなくshow)のテーブルに名前を付ける

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

しかし、あなたの問題は、showが予約語であるということです。これは、両方とも複数の行を含むことを認識します。また、予約語と競合する可能性も低くなります。

+0

ありがとうございます - 私は自分の既存のテーブルを削除し、ショーを「ショー」に変更して、スムーズに作業を進めました。 ADD CONSTRAINTは何をしているのですか?私は単純にFOREIGN KEYなどを追加して使用し、PRIMARY KEYにそれらを使用しました...私はそれらをすべて間違えましたか?事実の後で、外部キーが通過したことをどのように確認できますか? –

+0

@NatalieSpatharakis。 。 。名前のない制約を追加するのは間違いではありません。しかし、私は明示的であり、理にかなった制約名を与えるのが好きです。 –

関連する問題