簡體   English   中英

#1215-無法添加外鍵約束

[英]#1215 - Cannot add foreign key constraint

我的工作需要幫助。

我有以下代碼:

    ALTER TABLE `utentes_old`
  ADD CONSTRAINT `utentes_old_ibfk_1` FOREIGN KEY (`idConcelho`) REFERENCES `concelhos` (`id`),
  ADD CONSTRAINT `utentes_old_ibfk_2` FOREIGN KEY (`idFreguesia`) REFERENCES `freguesias` (`id`),
  ADD CONSTRAINT `utentes_old_ibfk_3` FOREIGN KEY (`idEstadoCivil`) REFERENCES `estadoscivis` (`id`),
  ADD CONSTRAINT `utentes_old_ibfk_4` FOREIGN KEY (`idHabilitacoes`) REFERENCES `habilitacoes` (`id`),
  ADD CONSTRAINT `utentes_old_ibfk_5` FOREIGN KEY (`idGrupoEtario`) REFERENCES `gruposetarios` (`id`),
  ADD CONSTRAINT `utentes_old_ibfk_6` FOREIGN KEY (`idGenero`) REFERENCES `generos` (`id`),
  ADD CONSTRAINT `utentes_old_ibfk_7` FOREIGN KEY (`idSituacaoRegularizada`) REFERENCES `situacaonopaisregularizada` (`id`),
  ADD CONSTRAINT `utentes_old_ibfk_8` FOREIGN KEY (`idInscritoCE`) REFERENCES `inscritocentrodeemprego` (`id`),
  ADD CONSTRAINT `utentes_old_ibfk_9` FOREIGN KEY (`idSituacaoDeEmprego`) REFERENCES `situacaodeemprego` (`id`),
  ADD CONSTRAINT `utentes_old_ibfk_10` FOREIGN KEY (`idTempoDesemprego`) REFERENCES `tempodesemprego` (`id`),
  ADD CONSTRAINT `utentes_old_ibfk_11` FOREIGN KEY (`idFrontOfficeSinalizador`) REFERENCES `instituicoes` (`id`),
  ADD CONSTRAINT `utentes_old_ibfk_12` FOREIGN KEY (`idTecnico`) REFERENCES `tecnicos` (`id`);

但是,當我將腳本導入phpmyadmin時,它們給了我這個錯誤:

    SQL query:

--
-- Limitadores para a tabela `utentes_old`
--
ALTER TABLE `utentes_old`
  ADD CONSTRAINT `utentes_old_ibfk_1` FOREIGN KEY (`idConcelho`) REFERENCES `concelhos` (`id`),
  ADD CONSTRAINT `utentes_old_ibfk_2` FOREIGN KEY (`idFreguesia`) REFERENCES `freguesias` (`id`),
  ADD CONSTRAINT `utentes_old_ibfk_3` FOREIGN KEY (`idEstadoCivil`) REFERENCES `estadoscivis` (`id`),
  ADD CONSTRAINT `utentes_old_ibfk_4` FOREIGN KEY (`idHabilitacoes`) REFERENCES `habilitacoes` (`id`),
  ADD CONSTRAINT `utentes_old_ibfk_5` FOREIGN KEY (`idGrupoEtario`) REFERENCES `gruposetarios` (`id`),
  ADD CONSTRAINT `utentes_old_ibfk_6` FOREIGN KEY (`idGenero`) REFERENCES `generos` (`id`),
  ADD CONSTRAINT `utentes_old_ibfk_7` FOREIGN KEY (`idSituacaoRegularizada`) REFERENCES `situacaonopaisregularizada` (`id`),
  ADD CONSTRAINT `utentes_old_ibfk_8` FOREIGN KEY (`idInscritoCE`) REFERENCES `inscritocentrodeemprego` (`id`),
  ADD CONSTRAINT `utentes_old_ibfk_9` FOREIGN KEY (`idSituacaoDeEmprego`) REFERENCES `situac[...]
MySQL said: Documentation

#1215 - Cannot add foreign key constraint 

有人可以幫我嗎?

刪除表名,約束名,引用名的單引號。 這是語法錯誤。

最常見的兩個錯誤是外鍵和主鍵/索引的數據類型不完全相同,或者主鍵定義不正確。

另外,您不需要所有這些反引號/單引號。 僅當您的名稱和標識符包含空格或特殊字符時才需要它們,語句中不是這種情況。

如果沒有所有數據庫架構,則很難說出是哪個導致了問題,但是我會檢查各種情況:

  • 確保不存在具有給定名稱的約束。 您不能有重復的約束。
  • 確保列的數據類型與其引用的數據類型相同。
  • 由於您使用的是外鍵,因此請確認每個相鄰表中的“ id”列都是主鍵。 您不能創建對不是主鍵的列的外鍵引用。

可能還有其他情況,我會根據自己的想法進行添加,但這是我自己看到的三種最常見的情況。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM