亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

MySQL錯誤1215:無法添加外鍵約束

MySQL錯誤1215:無法添加外鍵約束

精慕HU 2019-06-18 16:56:02
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_NumberClients_has_Staff.Staff_Emp_ID.

也許父表中的列是INT UNSIGNED?

它們在兩個表中都需要完全相同的數據類型。


查看完整回答
反對 回復 2019-06-18
?
www說

TA貢獻1775條經驗 獲得超8個贊

您可能會得到外鍵約束錯誤的原因:

  1. 您并不是將InnoDB用作所有表上的引擎。
  2. 您正在嘗試引用目標表上不存在的鍵。確保它是

    鑰匙

    在另一個表上(它可以是主鍵或唯一鍵)
  3. 列的類型不一樣(例外是引用表上的列可以為空)。
  4. 如果PK/FK是一個varchar,那么確保排序規則對兩者都是相同的。

最新情況:

  1. 其中一個原因也可能是您所使用的列。

    ON DELETE SET NULL

    未定義為NULL。因此,請確保該列設置為默認NULL。

看看這些。


查看完整回答
反對 回復 2019-06-18
?
人到中年有點甜

TA貢獻1895條經驗 獲得超7個贊

對于其他錯誤,相同的錯誤可能并不總是由于列類型錯配造成的,您可以通過發出命令來查找有關mysql foriegn鍵錯誤的更多信息。

SHOW ENGINE INNODB STATUS;

您可能在打印的郵件頂部附近發現一個錯誤,類似于

無法在引用的表中找到索引,其中引用的列顯示為第一列,或表中的列類型和引用的表不匹配約束。


查看完整回答
反對 回復 2019-06-18
  • 3 回答
  • 0 關注
  • 1266 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號