我尝试使用递归列创建一个表,但它不起作用。后来我尝试了它确实有效,但我因为一个问题而放弃了桌子,现在我不知道自己做了什么。 表的名称是" security"这是脚本:
create table security (
id_emplo int(6) ZEROFILL NOT NULL,
id_boss varchar(10) DEFAULT NULL,
TIP int(5) NOT NULL,
security_division varchar(40),
PRIMARY KEY (id_emplo),
FOREIGN KEY (id_emplo) REFERENCES employees (id_emple) ON DELETE RESTRICT ON UPDATE CASCADE,
FOREIGN KEY (id_boss) REFERENCES security (id_emple) ON DELETE RESTRICT ON UPDATE CASCADE
) ENGINE=INNODB;
我有另一张名为"雇员"的表。如果我尝试使用" id_emplo"来创建表格。参考文献雇用......它没有任何问题。
答案 0 :(得分:0)
你必须非常小心类型和声明。以下应该有效:
create table security (
id_emplo int(6) ZEROFILL NOT NULL,
id_boss int(6) ZEROFILL DEFAULT NULL,
TIP int(5) NOT NULL,
security_division varchar(40),
PRIMARY KEY (id_emplo),
FOREIGN KEY (id_emplo) REFERENCES employees (id_emple) ON DELETE RESTRICT ON UPDATE CASCADE,
FOREIGN KEY (id_boss) REFERENCES security (id_emplo) ON DELETE RESTRICT ON UPDATE CASCADE
);
Here是SQL小提琴。
你有两个主要问题:
id_emplo
而不是id_emple
(尽管我给外键列的名称与它们引用的列相同)。