我有一条 SQL 语句:
CREATE TABLE RoomType(
hotelID SMALLINT NOT NULL,
name VARCHAR(20) NOT NULL,
PRIMARY KEY (hotelID, name)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE BookingItem(
bookingID SMALLINT NOT NULL,
roomTypeName VARCHAR(20) NOT NULL,
PRIMARY KEY (bookingID, roomTypeName),
FOREIGN KEY (roomTypeName) REFERENCES RoomType(name)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
它显示错误 #1215 - 无法添加外键约束。但是,当我更改线路时:
PRIMARY KEY (hotelID, name)
进入
PRIMARY KEY (name, hotelID)
它工作得很好。我不知道这里会发生什么。有人可以向我解释为什么会发生这种情况。非常感谢你。