【发布时间】:2020-02-22 19:18:21
【问题描述】:
我想在一些表中插入一些数据。但是,在到达statistics_per_year 时,mysql 弹出错误代码1452,我不知道这是为什么。
错误:
17:54:58 INSERT INTO statistics_per_year(disease_continent_id,infected_id,dead_id) VALUES(2,3,4) Error Code: 1452. Cannot add or update a child row: a foreign key constraint fails (`practice`.`statistics_per_year`, CONSTRAINT `statistics_per_year_ibfk_1` FOREIGN KEY (`infected_id`) REFERENCES `statistics_reference` (`infected_id`)) 0.484 sec
代码:
CREATE TABLE df(
disease_continent_id INT NOT NULL PRIMARY KEY
);
CREATE TABLE statistics_reference(
infected_id INT NOT NULL,
dead_id INT NOT NULL,
per_100000_population VARCHAR(30) NOT NULL,
PRIMARY KEY(infected_id)
);
CREATE TABLE statistics_per_year(
disease_continent_id INT NOT NULL,
infected_id INT NOT NULL,
dead_id INT NOT NULL,
FOREIGN KEY(infected_id) REFERENCES statistics_reference(infected_id),
FOREIGN KEY(disease_continent_id) REFERENCES df(disease_continent_id)
);
INSERT INTO df(disease_continent_id)
VALUES(1);
INSERT INTO statistics_reference(infected_id,dead_id,per_100000_population)
VALUES(1,2,"fff");
INSERT INTO statistics_per_year(disease_continent_id,infected_id,dead_id)
VALUES(1,3,4);
【问题讨论】:
-
因为您试图在
statistics_per_year中添加一行,其中infected_id的值为3,而statistics_reference表中不存在该行。错误消息非常清楚地解释了问题所在,并特别告诉您,如果您阅读错误消息,则会违反什么约束。 -
我注意到这个问题在 Stackoverflow 上被称为“重复”。这是否意味着我应该删除这个问题?
标签: mysql foreign-keys primary-key composite-primary-key mysql-error-1452