我有一个自引用MySQL表与递归parent_id:
CREATE TABLE `recursive` (
`id` int(11) NOT NULL auto_increment,
`parent_id` int(11) default NULL,
`name` varchar(100) NOT NULL,
PRIMARY KEY (`id`),
KEY `data_categorysource_parent_id` (`parent_id`),
CONSTRAINT `parent_id_refs_id_627b4293`
FOREIGN KEY (`parent_id`) REFERENCES `data_categorysource` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
在测试期间,我想清空它,但TRUNCATE失败:
TRUNCATE `recursive`
/* SQL Error: Cannot delete or update a parent row: a foreign key
constraint fails...
我目前必须手动删除所有记录,从树的底部开始向上工作。即使是小树,这也变得更加繁重。
有没有一个简单的方法呢?我不能拖动表并轻松地重新创建它,因为其他表引用它(我已经截断了那些,所以应该没有数据完整性问题)。