我正在構建我的一個數據庫的模式。我有兩個下面的表...來自多個表的複合外鍵
CREATE TABLE User(
userID INT AUTO_INCREMENT,
...
PRIMARY KEY(userID)
);
CREATE TABLE Tool(
toolID INT AUTO_INCREMENT,
...
PRIMARY KEY(toolID)
)
我想創建一個名爲hasTool的表,它有兩個使用外鍵約束的表的主鍵。但是,除此之外,我希望使這兩個字段成爲新表hasTool的組合鍵。我曾嘗試以下,但它似乎並沒有產生預期的行爲:
CREATE TABLE gcHasCoordinates (
userID INT NOT NULL,
toolID INT NOT NULL,
PRIMARY KEY (userID , toolID),
CONSTRAINT foreign_key_to_User FOREIGN KEY (userID) REFERENCES Coordinate(coordinateID) ,
CONSTRAINT foreign_key_to_Tool FOREIGN KEY (toolID) REFERENCES Tool(toolID)
);
我想允許表中,以便用戶ID或toolID的多個實例,但不能同時和兩個被現有的值表用戶和工具。
在此先感謝!
這應該是正確的,除了你引用了錯誤的表名'REFERENCES User(userID)'和'REFERENCES Tool(toolID)' –