2010-04-03 12 views
1

我試圖通過SQLyog的添加外鍵約束,並得到這個錯誤,雖然我只選擇一個源和一個基準列「請選擇來源和參考的同等數量的」關於SQLyog的

請選擇的源 和參考

同等數量有誰知道這意味着什麼在這種情況下?請注意,我有相同數量的源和參考列...

+0

剛剛遇到這篇文章。你使用的是哪個版本的SQLyog? – 2011-12-06 12:12:06

+0

@AshwinA,對不起,我現在不知道... – ripper234 2012-12-29 19:43:59

回答

2

我遇到了與SQLYog v9.01相同的問題。錯誤信息是誤導性的,錯誤的真正原因可能完全不同。

事情我檢查,以解決這個問題有以下幾種:

  • 檢查表engyne類型,既要InnoDB的
  • 檢查,如果你的目標表是不一樣的來源。
  • 檢查引用字段的數據類型,長度和字符集整理。
  • 如果您已經有數據在您的表中檢查其一致性。

例如,你應該從它涉及到表格中的

DELETE target FROM B AS target LEFT JOIN A USING(id_A) WHERE A.id_A IS NULL 
  • 最後在我的情況的人,我不得不FLUSH TABLES成功創建我的約束表B中刪除所有不相關的數據。

從查詢窗口創建手動約束可以爲您提供有關錯誤類型的更多信息。

提醒您:

ALTER TABLE `B` ADD CONSTRAINT `FK_B` FOREIGN KEY (`id_A`) REFERENCES `A` (`id_A`) ON DELETE CASCADE ; 

祝你好運!