这是两个MySQL表:
CREATE TABLE LPC.ChildInformation
(
ChildID CHAR(4),
FirstName TEXT,
Surname TEXT,
Gender TEXT,
DateOfBirth DATE,
PRIMARY KEY (ChildID)
);
CREATE TABLE LPC.ChildAttendance
(
ChildID CHAR(4),
DateAttended DATE,
TypeOfDay VARCHAR(15),
TypeOfTime VARCHAR(15),
PlannedArrivalTime TIME,
PlannedDepartureTime TIME,
ActualArrivalTime TIME,
ActualDepartureTime TIME,
PRIMARY KEY (ChildID, DateAttended),
FOREIGN KEY (ChildID) REFERENCES ChildInformation(ChildID)
);
执行以下查询时没有任何问题:
USE LPC;
INSERT INTO ChildInformation(ChildID, FirstName, Surname, Gender, DateOfBirth)
VALUES('C002', 'Shanaya', 'Talang', 'Female', '2010/02/03');
但是,此查询并不是:
USE LPC;
INSERT INTO ChildAttendance(ChildID, DateAttended, TypeOfDay, TypeOfTime, PlannedArrivalTime, PlannedDepartureTime, ActualArrivalTime, ActualDepartureTime)
VALUES ('C002','2015/01/26', 'Weekday', 'AfterSchool', '15:40:00', '17:30:00', '15:40:00', '17:47:00');
出现以下错误消息: 错误代码:1452。无法添加或更新子行;外键约束失败......
我在其他地方寻求建议,但没有发现任何可以帮助我的事情。我非常感谢任何有用的建议,因为我需要尽快解决这个问题。谢谢:))
答案 0 :(得分:0)
这可能只是一个错字:您插入ChildInformation
的孩子的ChildID
为“C001”,但您插入ChildAttendance
的行会引用{{1} “C002”。
由于您明确定义了约束,ChildID
中的行必须引用ChildAttendance
中的现有行,这是无效的,并且被设计拒绝。