我正在做一个学习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
);任何建议都是值得感谢的。
发布于 2016-08-05 01:34:04
您可以像在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
https://stackoverflow.com/questions/38773815
复制相似问题