递归表

时间:2016-02-27 14:39:28

标签: mysql recursion

我尝试使用递归列创建一个表,但它不起作用。后来我尝试了它确实有效,但我因为一个问题而放弃了桌子,现在我不知道自己做了什么。 表的名称是" 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"来创建表格。参考文献雇用......它没有任何问题。

1 个答案:

答案 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小提琴。

你有两个主要问题:

  1. 您的列名称不正确。它应该是id_emplo而不是id_emple(尽管我给外键列的名称与它们引用的列相同)。
  2. 类型不相容。