没有FK的空数据库上的MySQL无法创建表:无法添加外键约束。缺少约束索引

时间:2019-04-07 00:16:02

标签: mysql

我将所有表都删除了db,但是由于没有引用另一个表,因此不得不使用foreign_key_checks=0

现在,我启用了外键检查,并且无法在空数据库中创建users表。我觉得FK有一个悬而未决的约束。我删除了数据库并重新创建,结果相同。

[HY000][1822] Failed to add the foreign key constraint. Missing index for constraint 'apiCalls_users_Id_fk' in the referenced table 'users'
set foreign_key_checks=0; --with or without this, same thing.
CREATE TABLE users (
    id integer NOT NULL,
);

这实际上是我要在没有表的空数据库中创建的内容,该数据库已删除并使用create schema重新创建。 只有1列会失败。如果我在模式some_other_schema_name中尝试此操作,它将起作用。

也重启了MySQL几次,没有任何改变。 mysql Ver 8.0.15 for osx10.14 on x86_64 (Homebrew)

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

另一个数据库(!)(另一个模式!)中存在另一个约束,该约束引用了该数据库中的约束。 (这是由ORM自动错误创建的)

我通过调查information_schema.KEY_COLUMN_USAGE并运行查询CONSTRAINT_NAME LIKE '%apiCalls%'来找到正在引用的内容...

有趣。