【问题标题】:#1452 - Cannot add or update a child row: a foreign key constraint fails Policy_payment#1452 - 无法添加或更新子行:外键约束失败 Policy_payment
【发布时间】:2021-09-04 02:45:03
【问题描述】:

enter image description here我已经在phpmyadmin中创建了这些表

付款表

DROP TABLE IF EXISTS Payment; 
CREATE TABLE IF NOT EXISTS Payment (
pay_id int(5) NOT NULL, 
number int(25) default NULL, 
amount decimal(20,2) default NULL,
CONSTRAINT Payment_pk_payid 
PRIMARY KEY (pay_id) ) 
ENGINE=InnoDB DEFAULT CHARSET=utf8;

Policy_payment 表

DROP TABLE IF EXISTS Policy_payment;
CREATE TABLE IF NOT EXISTS Policy_payment( 
id int(5) NOT NULL, 
policy_id int(5) NOT NULL, 
pay_id int(5) NOT NULL, 
date date default NULL, 
CONSTRAINT Policy_payment_pk_id_policyid_payid 
    PRIMARY KEY (id,policy_id,pay_id),
CONSTRAINT Policy_payment_fk_policyid 
    FOREIGN KEY (policy_id)
    REFERENCES Policy (policy_id), 
CONSTRAINT Policy_payment_fk_payid
    FOREIGN KEY (pay_id) 
    REFERENCES Payment (pay_id) ) 
ENGINE=InnoDB DEFAULT CHARSET=utf8;

因此,当我尝试在 Policy_payment 表中插入值时,会出现 #1452 错误。我做错了什么?

--为表 Policy_payment 转储数据

INSERT INTO Policy_payment (
id, policy_id, pay_id, date) 
VALUES
('70111', '88881', '20001', '2019-01-10'), 
('70112', '88882', '20002', '2019-09-25'), 
('70113', '88883', '20003', '2019-04-18'), 
('70114', '88884', '20004', '2020-11-11'), 
('70115', '88885', '20005', '2020-06-23'), 
('70116', '88886', '20006', '2021-12-11'), 
('70117', '88887', '20007', '2021-08-20'), 
('70118', '88888', '20008', '2018-03-04'), 
('70119', '88889', '20009', '2018-03-20'), 
('70110', '88810', '20010', '2016-02-09');

enter image description here

这是错误 #1452 - 无法添加或更新子行:外键约束失败 (S11185754.Policy_payment, CONSTRAINT Policy_payment_fk_payid FOREIGN KEY (pay_id) REFERENCES Payment (pay_id))

谢谢

【问题讨论】:

  • 您是否尝试过使用带有短语“#1452 - 无法添加或更新子行:外键约束失败”的搜索引擎,因为这会提供很多适合您确切问题的答案.

标签: sql mysql-error-1452


【解决方案1】:

您正在尝试插入一条 pay_id 与付款表中的任何记录都不匹配的记录,即错误消息所说的内容。

【讨论】:

    猜你喜欢
    • 2013-05-11
    • 2013-09-28
    • 1970-01-01
    • 1970-01-01
    • 2013-05-03
    相关资源
    最近更新 更多