對於某些上下文,我創建了一個不協調的JavaScript bot,並且我創建了一個大型數據庫,這樣我可以記錄許多不同的信息。MariaDB下的MySQL奇怪的外鍵錯誤
數據庫的這部分是用來讓我可以
- 存儲消息
- 存儲歷史信息,與每一個編輯
- 容易查找哪些用戶在這些歷史的消息中提到的。
我在arch linux下使用MariaDB和MySQL Workbench。 Here's the relevant part of the database design, done on dbdesigner.net. 問題發生在最左邊的表格。
這是我的錯誤信息:
收於線158執行腳本錯誤1005(HY000):無法創建 表
test
。#sql-1bb_6
(錯誤:150「外鍵約束 格式不正確」)操作失敗,退出碼1
所以我知道那裏像158是我的外鍵的問題,但我不能發現問題。
ALTER TABLE `messageContentHistoryMentions`
ADD CONSTRAINT `messageContentHistoryMentions_fk1`
FOREIGN KEY (`messageContentCount`) REFERENCES `messageContentHistory`(`messageContentCount`);
讓我疑惑的部分是,158的格式與第156行完全相同,只有不同的字段。下面的156行:
ALTER TABLE `messageContentHistoryMentions`
ADD CONSTRAINT `messageContentHistoryMentions_fk0`
FOREIGN KEY (`messageID`) REFERENCES `messageContentHistory`(`messageID`);
你或許可以理解爲什麼我很困惑。
一些更多的信息:
- 這是一個新的安裝MariaDB的,這樣承擔違約
- InnoDB的是正在使用
- 這些表都
utf8mb4_unicode_ci
- 國外的雙方的排序規則引擎鍵是主鍵,是整數,長度爲8,默認值爲0.
謝謝。
編輯:這是不是重複的,而錯誤是相似的,它是在情況很不同
150往往意味着約束被在錯誤的順序應用。 –
請參見[mysql外鍵約束錯誤地形成錯誤](https://stackoverflow.com/questions/8434518/mysql-foreign-key-constraint-is-incorrectly-formed-error) – joanolo
[mysql外鍵約束錯誤地形成錯誤](https://stackoverflow.com/questions/8434518/mysql-foreign-key-constraint-is-incorrectly-formed-error) – joanolo