我有一个包含以下列的表: " id, parent_id, name" ,其中parent_id指向同一个表中的一个实体。
我想添加一个约束,阻止我删除一个实体,如果还有其他实体,第一个实体为parent_id.
可以为此使用外键还是只允许外键指向其他表?
是的,外键可以引用同一个表。
一个典型的例子,通常包含在数据库附带的示例数据库中,是:
create table employee (
id int not null primary key,
manager_id int not null references employee,
...
)
Run Code Online (Sandbox Code Playgroud)
此类引用称为自引用外键。如果像上面那样定义,如果有引用它的“子”记录,它们会自动防止删除“父”记录。