MYSQL 外键指向同一个表?

use*_*273 4 mysql

我有一个包含以下列的表: " id, parent_id, name" ,其中parent_id指向同一个表中的一个实体。

我想添加一个约束,阻止我删除一个实体,如果还有其他实体,第一个实体为parent_id.

可以为此使用外键还是只允许外键指向其他表?

Boh*_*ian 5

是的,外键可以引用同一个表。

一个典型的例子,通常包含在数据库附带的示例数据库中,是:

create table employee (
    id int not null primary key,
    manager_id int not null references employee,
    ...
)
Run Code Online (Sandbox Code Playgroud)

此类引用称为自引用外键。如果像上面那样定义,如果有引用它的“子”记录,它们会自动防止删除“父”记录。