删除在phpmyadmin中未被识别为关键字

时间:2014-02-01 19:55:30

标签: mysql sql

我正在使用wampserver,通过phpAdmin访问MySql。查询

alter table employee add constraint pqr
foreign key(Super_ssn) references employee(Ssn);

alter table employee add constraint pqrs
foreign key(Super_ssn) references employee(Ssn)
on update cascade;
两个都工作。但是

alter table employee add constraint pqrst
foreign key(Super_ssn) references employee(Ssn)
on delete set default on update cascade;

给出错误“#1005 - 无法创建表格”公司。#sql-11c4_18f'(错误号:150)“。

此外,删除不是作为关键字的语法颜色(它是黑色的,与其他'关键字'不同,如alter,on,cascade等)。

1 个答案:

答案 0 :(得分:2)

无法使用ON DELETE SET DEFAULTON UPDATE SET DEFAULT与InnoDB

  

<强> InnoDB and FOREIGN KEY Constraints
  虽然MySQL服务器允许SET DEFAULT,但会被拒绝   InnoDB无效。使用此CREATE TABLE和ALTER TABLE语句   InnoDB表不允许使用子句。

如果符合您的需要,您可以尝试ON DELETE SET NULL

  

如果ON UPDATE CASCADE或ON UPDATE SET NULL递归更新相同   在级联期间它先前更新过的表,它的作用就像   限制。这意味着您不能使用自引用ON UPDATE   CASCADE或ON UPDATE SET NULL操作。这是为了防止无限   级联更新产生的循环。 自我引用ON DELETE   另一方面,SET NULL是可能的,因为是自参考ON   删除CASCADE。级联操作的嵌套操作可能不会超过15   深度水平