我有引用该表一样通过持有一个列表(种)表形成一个sql文件,然后一个主表(动物):复位数据库无法删除或更新父行,外键约束失败
DROP TABLE IF EXISTS `tbl_species`;
CREATE TABLE `tbl_species` (
specie VARCHAR(10) PRIMARY KEY
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `tbl_species` VALUES ('dog');
INSERT INTO `tbl_species` VALUES ('cat');
INSERT INTO `tbl_species` VALUES ('bird');
DROP TABLE IF EXISTS `tbl_animal`;
CREATE TABLE `tbl_animal` (
id_animal INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(25) NOT NULL DEFAULT "no nombre",
specie VARCHAR(10) NOT NULL DEFAULT "dog",
FOREIGN KEY (specie) REFERENCES `tbl_species` (specie),
CONSTRAINT `uc_Info_Animal` UNIQUE (`id_animal`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
这部作品sqlfiddle没有问题,但是当我执行服务器上 我收到以下错误的SQL文件:
Cannot delete or update a parent row: a foreign key constraint fails
Statement:
DROP TABLE IF EXISTS `tbl_species`
你能告诉怎么解决这个问题,目前我不得不删除数据库并再次创建它...所以drop语句导致问题...