更改表添加外键引用

时间:2016-08-04 17:27:17

标签: mysql sql foreign-keys jointable

我正在做一个学习perl /催化剂的教程,它似乎有点过时了。我正在尝试将以前是主键(已经删除主键)的现有列更改为外键。我已经尝试了一堆不同的语法配置,似乎无法将其固定下来。这是我最近的尝试:

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

感谢任何建议。

1 个答案:

答案 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