有2张表,student表的主键id,同时为teacher表的外键。而teacher表的主键id也同时为student表的外键。这样一来,想删除任何一张表,都无法删除。那2张表是通过hibernate映射建出来的,哎,弄了半天也不知道怎么弄,先谢谢大家了啊
错误如下:
mysql> drop table student;
ERROR 1217 (23000): Cannot delete or update a parent row: a foreign key constraint failsmysql> drop table teacher;
ERROR 1217 (23000): Cannot delete or update a parent row: a foreign key constraint failsmysql> show create table student;
| student | CREATE TABLE `student` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL,
`teacher_id` int(11) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `FKF3371A1BA1548DAC` (`teacher_id`),
CONSTRAINT `FKF3371A1BA1548DAC` FOREIGN KEY (`teacher_id`) REFERENCES `teacher
` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=gbk |mysql> show create table teacher;
| teacher | CREATE TABLE `teacher` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL,
`student_id` int(11) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `FKD6A63C290B9430C` (`student_id`),
CONSTRAINT `FKD6A63C290B9430C` FOREIGN KEY (`student_id`) REFERENCES `student`
(`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=gbk |
错误如下:
mysql> drop table student;
ERROR 1217 (23000): Cannot delete or update a parent row: a foreign key constraint failsmysql> drop table teacher;
ERROR 1217 (23000): Cannot delete or update a parent row: a foreign key constraint failsmysql> show create table student;
| student | CREATE TABLE `student` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL,
`teacher_id` int(11) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `FKF3371A1BA1548DAC` (`teacher_id`),
CONSTRAINT `FKF3371A1BA1548DAC` FOREIGN KEY (`teacher_id`) REFERENCES `teacher
` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=gbk |mysql> show create table teacher;
| teacher | CREATE TABLE `teacher` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL,
`student_id` int(11) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `FKD6A63C290B9430C` (`student_id`),
CONSTRAINT `FKD6A63C290B9430C` FOREIGN KEY (`student_id`) REFERENCES `student`
(`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=gbk |
drop table student;
drop table teacher;
set @@foreign_key_checks=on;
SET FOREIGN_KEY_CHECKS = 0;
drop table student;
drop table teacher;
SET FOREIGN_KEY_CHECKS = 1;