我發現此線程類似於我的查詢 How to Link Foreign Key with Different Name 但不幸的是,與答案,我的問題沒有得到解決。就我的表格示例而言,它不會創建任何主鍵。所有外鍵只。MySQL使用相同的外鍵爲兩個不同的表列
下面是代碼:
CREATE TABLE ref_data(
user_id INT(11) NOT NULL,
ref_id INT(11) NOT NULL,
ref_name VARCHAR(30) NOT NULL,
ref_date datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT FK_user_id FOREIGN KEY(user_id) REFERENCES client (user_id),
CONSTRAINT FK_ref_id FOREIGN KEY(ref_id) REFERENCES client (user_id),
CONSTRAINT FK_ref_name FOREIGN KEY(ref_name) REFERENCES client (firstname)
);
它給我:
錯誤號:150 「外鍵約束的格式不正確」
這裏我使用USER_ID兩次第一個爲「user_id」,第二個爲「ref_id」。還使用firstname作爲「ref_name」。
客戶表:
CREATE TABLE client (
`user_id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`username` VARCHAR(30) NOT NULL UNIQUE KEY,
`email` VARCHAR(50) NOT NULL UNIQUE KEY,
`firstname` VARCHAR(30) NOT NULL,
`lastname` VARCHAR(30) NOT NULL,
`password` CHAR(128) NOT NULL
);
您可以在得到該錯誤之後運行'SHOW ENGINE InnoDB STATUS'獲取更多信息。 –
我運行它顯示如下: ===================================== 2017-07- 13 ... – mimi
可以肯定的是,在外鍵錯誤之後立即檢查了它? –