【问题标题】:Alter Table add Foreign Key Reference更改表添加外键引用
【发布时间】:2016-12-10 23:01:04
【问题描述】:

我正在做一个学习 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
);

感谢任何建议。

【问题讨论】:

    标签: mysql sql foreign-keys jointable


    【解决方案1】:

    您可以像在 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

    【讨论】:

      猜你喜欢
      • 2017-08-02
      • 2011-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-10
      • 2014-10-16
      • 2014-12-16
      • 2020-04-26
      相关资源
      最近更新 更多