我有一个类别表
CREATE TABLE `tbl_categories` (
`id` int(11) NOT NULL,
`name` varchar(100) NOT NULL DEFAULT '0',
`parent_id` int(11) NOT NULL DEFAULT '0'
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
这就是它在运行后显示具有子类别的类别的方式
如果父记录有一个或几个子记录,我需要阻止删除父记录。我该怎么做?。
答案 0 :(得分:4)
您可以使用自引用外键,但必须分两个阶段创建它:
create table foo (
id int not null auto_increment primary key,
parent int default null
);
alter table foo add foreign key (parent) references foo (id)
on delete restrict;
您必须将其作为单独的alter
执行,因为它在表定义本身中不起作用 - 此时表不存在,因此FK验证将失败并且不允许表要被创造。