微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

#1452 - 无法添加或更新子行:外键约束失败 Policy_payment

如何解决#1452 - 无法添加或更新子行:外键约束失败 Policy_payment

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,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))

谢谢

解决方法

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。