MySQL约束失败时获取值

时间:2016-09-01 07:56:35

标签: php mysql foreign-keys

假设我在具有约束

的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方式也会起作用。

0 个答案:

没有答案