0
當我運行此操作時,我僅收到錯誤150。其他表是InnoDB,類型是主鍵,數據類型匹配。所以我不明白我做錯了什麼,(我沒有看到明顯的語法錯誤)。有任何想法嗎?MySQL無法使用外鍵創建新表
CREATE TABLE grouptosite (
groups_id BIGINT(20),
usertogroup_groupID BIGINT(20),
usertogroup_userID BIGINT(20),
usertosite_id INT(10),
gts_id INT(10) AUTO_INCREMENT NOT NULL,
PRIMARY KEY (gts_id),
index (gts_id),
index (groups_id),
index (usertogroup_groupID),
index (usertogroup_userID),
index (usertosite_id),
FOREIGN KEY (groups_id)
REFERENCES groups(id)
ON UPDATE CASCADE ON DELETE RESTRICT,
FOREIGN KEY (usertogroup_groupID, usertogroup_userID)
REFERENCES usertogroup(groupID, userID)
ON UPDATE CASCADE ON DELETE RESTRICT,
FOREIGN KEY (usertosite_id)
REFERENCES usertosite(id)
ON UPDATE CASCADE ON DELETE RESTRICT
) ENGINE=INNODB;
這應該解決你的問題http://stackoverflow.com/questions/825362/mysql-error-150-foreign-keys – user2600629
什麼'組','usertogroup'和'usertosite'表是什麼樣子? –
你確定你的列是同一類型嗎?我首先創建了ID爲BIGINT的usertosite表(遵循其他表的相同模式),但grouptosite.usertosite_id字段爲INT。 http://sqlfiddle.com/#!2/d821a – xecaps12