MySQL錯(cuò)誤1215:無法添加外鍵約束我正試圖將我的新模式轉(zhuǎn)發(fā)到我的db服務(wù)器上,但我不知道為什么會(huì)出現(xiàn)這個(gè)錯(cuò)誤。我試圖在這里搜索答案,但我發(fā)現(xiàn)的所有內(nèi)容都說,要么將db引擎設(shè)置為Innodb,要么確保我試圖用作外鍵的鍵是它們自己表中的主鍵。如果我沒有弄錯(cuò)的話,這兩件事我都做過了。你們還能提供什么幫助嗎?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腳本執(zhí)行完成:語句: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貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個(gè)贊
Clients.Case_Number
Staff.Emp_ID
Clients_has_Staff.Clients_Case_Number
Clients_has_Staff.Staff_Emp_ID
.
INT UNSIGNED
?

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

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