MySQL錯誤1215:無法添加外鍵約束我正試圖將我的新模式轉發到我的db服務器上,但我不知道為什么會出現這個錯誤。我試圖在這里搜索答案,但我發現的所有內容都說,要么將db引擎設置為Innodb,要么確保我試圖用作外鍵的鍵是它們自己表中的主鍵。如果我沒有弄錯的話,這兩件事我都做過了。你們還能提供什么幫助嗎?Executing SQL script in server
ERROR: Error 1215: Cannot add foreign key constraint-- -------------------------------------------------------
Table `Alternative_Pathways`.`Clients_has_Staff`-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `Alternative_Pathways`.`Clients_has_Staff` (
`Clients_Case_Number` INT NOT NULL ,
`Staff_Emp_ID` INT NOT NULL ,
PRIMARY KEY (`Clients_Case_Number`, `Staff_Emp_ID`) ,
INDEX `fk_Clients_has_Staff_Staff1_idx` (`Staff_Emp_ID` ASC) ,
INDEX `fk_Clients_has_Staff_Clients_idx` (`Clients_Case_Number` ASC) ,
CONSTRAINT `fk_Clients_has_Staff_Clients`
FOREIGN KEY (`Clients_Case_Number` )
REFERENCES `Alternative_Pathways`.`Clients` (`Case_Number` )
ON DELETE NO ACTION ON UPDATE NO ACTION,
CONSTRAINT `fk_Clients_has_Staff_Staff1`
FOREIGN KEY (`Staff_Emp_ID` )
REFERENCES `Alternative_Pathways`.`Staff` (`Emp_ID` )
ON DELETE NO ACTION ON UPDATE NO ACTION)ENGINE = InnoDBSQL腳本執行完成:語句:7成功,1失敗下面是父表的SQL。CREATE TABLE IF NOT EXISTS `Alternative_Pathways`.`Clients` (
`Case_Number` INT NOT NULL ,
`First_Name` CHAR(10) NULL ,
`Middle_Name` CHAR(10) NULL ,
`Last_Name` CHAR(10) NULL ,
`Address` CHAR(50) NULL ,
`Phone_Number` INT(10) NULL ,
PRIMARY KEY (`Case_Number`) )ENGINE = InnoDBCREATE TABLE IF NOT EXISTS `Alternative_Pathways`.`Staff` (
`Emp_ID` INT NOT NULL ,
`First_Name` CHAR(10) NULL ,
`Middle_Name` CHAR(10) NULL ,
`Last_Name` CHAR(10) NULL ,
PRIMARY KEY (`Emp_ID`) )ENGINE = InnoDB
3 回答

慕雪6442864
TA貢獻1812條經驗 獲得超5個贊
Clients.Case_Number
Staff.Emp_ID
Clients_has_Staff.Clients_Case_Number
Clients_has_Staff.Staff_Emp_ID
.
INT UNSIGNED
?

www說
TA貢獻1775條經驗 獲得超8個贊
您并不是將InnoDB用作所有表上的引擎。 您正在嘗試引用目標表上不存在的鍵。確保它是 鑰匙
在另一個表上(它可以是主鍵或唯一鍵) 列的類型不一樣(例外是引用表上的列可以為空)。 如果PK/FK是一個varchar,那么確保排序規則對兩者都是相同的。
最新情況:
其中一個原因也可能是您所使用的列。 ON DELETE SET NULL
未定義為NULL。因此,請確保該列設置為默認NULL。

人到中年有點甜
TA貢獻1895條經驗 獲得超7個贊
SHOW ENGINE INNODB STATUS;
無法在引用的表中找到索引,其中引用的列顯示為第一列,或表中的列類型和引用的表不匹配約束。
添加回答
舉報
0/150
提交
取消