2016-08-04 95 views
2

我正在做一個學習Perl /催化劑的教程,它似乎有點過時了。我試圖將之前已經存在的一列(它已經是主鍵)(已經放棄了主鍵)改變爲一個外鍵。我已經嘗試了一些不同的語法配置,似乎無法把它固定下來。這是我最近的嘗試:改變表添加外鍵參考

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語句中。

您還缺少修改和添加約束線之間的逗號。

而且您正在圍繞作爲約束主題的book_id列丟失括號。

以下工作:

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

此語法在MySQL官方網站記載:http://dev.mysql.com/doc/refman/5.7/en/alter-table.html