添加外键约束时出现MySQL语法错误

时间:2014-02-06 21:51:46

标签: mysql sql

我有两个表如下所示:

http://pastebin.com/AwRJJiPE

然后我尝试添加一个外键约束,如下所示:

mysql> ALTER TABLE `Order`
    -> ADD CONSTRAINT `FK_baseline_order`
    ->     FOREIGN KEY `baselineId`
    ->     REFERENCES `Baseline` (`id`)
    ->     ON UPDATE CASCADE ON DELETE CASCADE;

我收到以下“语法”错误:

  

错误1064(42000):您的SQL语法有错误;检查   手册,对应右边的MySQL服务器版本   要在'参考Baselineid)附近使用的语法       在第4行删除CASCADE'上的ON更新级联

我为我的生活无法弄清楚我做错了什么。我觉得我错过了一些非常明显的东西......

2 个答案:

答案 0 :(得分:3)

您还需要在括号之间放置引用列:

ALTER TABLE `Order`
   ADD CONSTRAINT `FK_baseline_order`
      FOREIGN KEY (`baselineId`)     <<<<-- here
      REFERENCES `Baseline` (`id`)
      ON UPDATE CASCADE ON DELETE CASCADE;

答案 1 :(得分:0)

尝试将外键列放在括号内,如

ALTER TABLE `Order`
 ADD CONSTRAINT `FK_baseline_order`
     FOREIGN KEY (`baselineId`) <-- Here
    REFERENCES `Baseline` (`id`)
     ON UPDATE CASCADE ON DELETE CASCADE;