2016-08-04 25 views
2

私はperl/catalystを学ぶためにチュートリアルをやっていますが、それは少し古くなっているようです。私は以前にプライマリキー(すでにプライマリキーをドロップされていた)である既存のカラムを外部キーに変更しようとしています。私は構文のさまざまな構成を試してきたし、それを固定するように見えることはできません。これは私の最近の試みです:テーブルを変更する外部キー参照を追加

ALTER TABLE book_author (
    MODIFY book_id INTEGER 
    ADD CONSTRAINT FOREIGN KEY book_id 
    REFERENCES book(id) 
    ON DELETE CASCADE 
    ON UPDATE CASCADE 
); 

アドバイスをいただければ幸いです。

答えて

2

CREATE TABLEステートメントでは、括弧を使用しますが、ALTER TABLEステートメントでは使用しません。

また、MODIFY行とADD CONSTRAINT行の間にカンマがありません。

あなたは制約の対象であるbook_id列の周りに括弧がありません。

次作品:この構文は、公式のMySQLサイトに記載されて

ALTER TABLE book_author 
    MODIFY book_id INTEGER, 
    ADD CONSTRAINT FOREIGN KEY (book_id) 
    REFERENCES book(id) 
    ON DELETE CASCADE 
    ON UPDATE CASCADE; 

http://dev.mysql.com/doc/refman/5.7/en/alter-table.html

関連する問題