我正在做一个学习 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
);
如有任何建议,我们将不胜感激。
最佳答案
您可以像在 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
关于mysql - 改变表添加外键引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38773815/