0

我已經仔細檢查過我的模式,它的正確...事實上的教義也建立了一次..現在它讓我對一些FK關係感到困擾...... 我有也檢查數據類型。全部是int(4)或int(2)通過教義添加FK關係的問題構建任務

2 Qs here: 1.是否有一個表可以有一個上限的關係(依賴關係/ FKs)? 我在表格中有多達7個FK 2.是否有引用父表(PK)的表的上限? 我有多達30個字段在20個表中,引用選項表中的單個ID列 3.是否需要定義CASCASE行爲? 我沒有用過它!

在這種情況下生活沒有關係更好嗎?

的錯誤是:

SQLSTATE[HY000]: General error: 1005 Can't create table 'sokidb.#sql-268_1d' (errno: 121). Failing Query: "ALTER TABLE Acc_Gl_Accounts ADD CONSTRAINT Acc_Gl_Accounts_society_id_Soc_Societies_id FOREIGN KEY (society_id) REFERENCES Soc_Societies(id)". Failing Query: ALTER TABLE Acc_Gl_Accounts ADD CONSTRAINT Acc_Gl_Accounts_society_id_Soc_Societies_id FOREIGN KEY (society_id) REFERENCES Soc_Societies(id) 

我也直接開除查詢在MySQL,它會導致同樣的錯誤。

+1

你可以張貼表格的結構: Acc_Gl_Accounts Soc_Societies – johnwards 2010-06-21 07:12:28

回答

1

人們,在過去的幾天裏,我意識到有可能沒有與教義的已知問題。

我的錯誤是,我已經定義了我的一個表中鍵的選項「無符號:真正的」,而不是重複相同的FK定義:( 都是我的錯,但解決的辦法是仔細檢查你的數據類型

而要調試的MySQL相關的錯誤最好的辦法是檢查所生成的SQL腳本。 你可以很容易地發現在列的定義不同。

感謝約翰,你的興趣。

1

您可能正在使用INNODB表,這是現代mysql版本的默認值並遇到外鍵約束錯誤。 Read here查看完整的重新列表。在國外 鍵和被引用鍵

對應的字段必須有 類似的內部數據類型裏面 InnoDB的,讓他們可以在沒有類型轉換進行比較 。 的大小和整數類型的符號必須是相同的 。字符串類型的長度需要 不一樣。對於非二進制 (字符)字符串列, 字符集和歸類必須是 相同。