问题描述
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');
这是错误
#1452 - 无法添加或更新子行:外键约束失败 (S11185754
.Policy_payment
,CONSTRAINT Policy_payment_fk_payid
FOREIGN KEY (pay_id
) REFERENCES Payment
(pay_id
))
谢谢
解决方法
您正在尝试插入一条记录,其 pay_id 与付款表中的任何记录都不匹配,即与错误消息所说的完全不匹配。