Mysql 递归表

Mysql 递归表,mysql,recursion,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 (

我试图创建一个带有递归列的表,但它不起作用。后来我尝试了一下,它确实起了作用,但是我因为一个问题而放弃了桌子,现在我不知道我做了什么。 该表的名称为“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”引用employess的表。。。它没有任何问题。

您必须非常小心类型和声明。以下方面应起作用:

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
);
是SQL的把戏

你有两个主要问题:

  • 列的名称不正确。它应该是
    id\u emplo
    而不是
    id\u emple
    (尽管我给外键列的名称与它们在可能的情况下引用的列的名称相同)
  • 这些类型不兼容

  • 抱歉,这是一个错误,因为我在写它时更改了名称,但在中,我在mysql中写得很好。是的。。。就这样。因为类型的原因,它不起作用。我在mysql中写得很好,但是列的名称(id_emple)=(id_emplo)有一个错误,因为我在这里写它而不是粘贴它。非常感谢你。