Alter Table 添加外键引用

Alter Table add Foreign Key Reference

我正在做一个教程来学习 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