在做hibernate的manytoone的时候,在删除表的时候出现:
Cannot delete or update a parent row: a foreign key constraint fails
在Mysql中创建表的时候,设置了表的自我关联(就是一个表有个主键,还有另外一个字段,该字段作为本表的外键,关联这个主键),插入一条数据 后,如果想删除这条数据,首先必须删除外键约束,drop constrain 外键名称 ,但是会发现,删除外键约束后,在mysql的命令行中使用show create table 表名,查看表的结构,你会发现,其实还有个key 外键名,这个东东;这个东东相当于索引index,所以删除的时候,使用语句alter table drop index 外键名称,然后使用show create table 表名,去查看,发现,key 也删除了,这个时候,你要是再使用drop table 表名,会提示你如下错误:
Cannot delete or update a parent row: a foreign key constraint fails
解决方法:
SET FOREIGN_KEY_CHECKS = 0;
这样就可以解决了,使用drop table 表名,就可以删除表了!
删除完成之后再设置回来:
SET FOREIGN_KEY_CHECKS = 1;