我在INSERT
上收到1452错误(下面),但没有意义。
表:
# Has parent field
CREATE TABLE IF NOT EXISTS `price_comp_group` (
`id` INT(10) NOT NULL AUTO_INCREMENT,
`headline` VARCHAR(255) NOT NULL,
`text` TEXT NULL,
PRIMARY KEY (`id`)
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB;
# Has child field
CREATE TABLE IF NOT EXISTS `price_comp_group_drug` (
`group_id` INT(10) NOT NULL,
`drug_id` INT(10) UNSIGNED NOT NULL,
`item_order` INT(10) NOT NULL,
CONSTRAINT `fk_group_id_drug` FOREIGN KEY (`group_id`) REFERENCES `price_comp_group`(`id`)
ON DELETE CASCADE,
CONSTRAINT `fk_drug_id_drug` FOREIGN KEY (`drug_id`) REFERENCES `drug`(`ID`)
ON DELETE CASCADE
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB;
# Unique index
ALTER TABLE `price_comp_group_drug`
ADD UNIQUE INDEX idx_group_drug
(`group_id`, `drug_id`);
现在,我正在尝试进行这样的多次插入:
INSERT INTO `price_comp_group_drug` (`group_id`, `drug_id`, `item_order`)
VALUES (1, 1, 1), (1, 2, 3), (0, 3, 6);
我得到了这个:
#1452 - 无法添加或更新子行:外键约束失败(dev23_db
。price_comp_group_drug
,CONSTRAINT fk_group_id_drug
FOREIGN KEY(group_id
)参考price_comp_group
(id
)ON DELETE CASCADE)
那为什么我会看到这个错误?如果我尝试使用FOREIGN KEY
值插入/更新不有父级的行,我应该看到它...
答案 0 :(得分:1)
在您提供的insert语句中,外键不能为零。
在第三行的插入声明中" group_id'被指定为' 0'。
由于group_id上有一个外键,因此会抛出错误。