我正在做一个学习perl /催化剂的教程,它似乎有点过时了。我正在尝试将以前是主键(已经删除主键)的现有列更改为外键。我已经尝试了一堆不同的语法配置,似乎无法将其固定下来。这是我最近的尝试:
ALTER TABLE book_author (
MODIFY book_id INTEGER
ADD CONSTRAINT FOREIGN KEY book_id
REFERENCES book(id)
ON DELETE CASCADE
ON UPDATE CASCADE
);
感谢任何建议。
答案 0 :(得分:3)
您使用括号,就像使用CREATE TABLE
语句一样,但不能使用ALTER TABLE
语句。
您还缺少MODIFY和ADD CONSTRAINT行之间的逗号。
并且你缺少围绕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