对于某些上下文,我创建了一个不协调的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