【发布时间】:2015-10-08 21:05:42
【问题描述】:
我有两张桌子,“booking”和“isBooked”。我想向 isBooked 表添加值。但我不断收到错误消息“无法添加或更新子外键约束失败”。
CREATE TABLE booking (
bookingID INT AUTO_INCREMENT,
customerID INT,
startDate DATE,
endDate DATE,
dateBookedOn TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
employeeID int,
PRIMARY KEY (bookingID),
INDEX idx_start (startDate),
INDEX idx_end (endDate),
FOREIGN KEY (customerID) REFERENCES customer(CustomerID)
);
CREATE TABLE isBooked(
BookingID int,
DogID int,
RunID int,
foreign key (RunID) references Run(RunID),
foreign key (DogID) references Dog(dogID),
foreign key (BookingID) references Booking(BookingID)
);
insert into isbooked values(1, 1, 1);
谁能告诉我为什么在尝试将值插入“isBooked”时会出现此错误。
【问题讨论】:
-
您正在尝试在 isBooked 中插入引用的表预订中不存在的值。
-
你仅仅拥有 FK 就应该得到支持
-
插入尝试违反了 Run、dog 或 booking 限制(至少 1 个)
-
@DrewPierce,是的,它违反了其中之一,但用户只显示了 2 张桌子!
-
即使他给我们展示了3个父表,我们也看不到3个中缺失的数据
标签: mysql