假设我在具有约束
的MySQL表中插入行CREATE TABLE `parent` (
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`id`)
)
ENGINE=InnoDB
;
CREATE TABLE `child` (
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`id_parent` INT(10) UNSIGNED NOT NULL,
PRIMARY KEY (`id`),
INDEX `FK_parent_child` (`id_parent`),
CONSTRAINT `FK_parent_child` FOREIGN KEY (`id_parent`) REFERENCES `parent` (`id`),
)
ENGINE=InnoDB
;
然后当我在child
表中插入而没有parent
表中的条目时:
INSERT INTO child (id, id_parent) VALUES (1, 1);
我收到以下错误:
Cannot add or update a child row: a foreign key constraint fails (`...`.`child`, CONSTRAINT `FK_parent_child` FOREIGN KEY (`id_parent`) REFERENCES `parent` (`id`))`
但是有没有办法检索插入失败行的值,又称1
?因为当我同时插入数千行时,获取失败的行非常有用。
我想要一个完全MySQL的方式,但在我的情况下,PHP方式也会起作用。