我将所有表都删除了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)
有什么想法吗?
答案 0 :(得分:0)
另一个数据库(!)(另一个模式!)中存在另一个约束,该约束引用了该数据库中的约束。 (这是由ORM自动错误创建的)
我通过调查information_schema.KEY_COLUMN_USAGE
并运行查询CONSTRAINT_NAME LIKE '%apiCalls%'
来找到正在引用的内容...
有趣。