没有 FK 的空数据库上的 MySQL 无法创建表 : Failed to add the foreign key constraint. 缺少约束索引

标签 mysql

我删除了数据库中的所有表,但必须使用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,
);

这实际上是我试图在没有表的空数据库中创建的内容,该数据库已被删除并使用创建架构重新创建。 仅 1 列就失败了。如果我在架构 some_other_schema_name 中尝试此操作,它会起作用。

还重新启动了MySQL几次,没有变化。 mysql Ver 8.0.15,适用于 x86_64 上的 osx10.14(自制软件)

有什么想法吗?

最佳答案

另一个数据库(!)(另一个模式!)中有另一个约束引用此数据库中的约束。 (这是 ORM 自动错误创建的)

我通过查看 information_schema.KEY_COLUMN_USAGE 并运行查询 CONSTRAINT_NAME LIKE '%apiCalls%' 来查找引用的内容,发现了这一点...

有趣。

关于没有 FK 的空数据库上的 MySQL 无法创建表 : Failed to add the foreign key constraint. 缺少约束索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55554587/

相关文章:

mysql - 获取 QODBC 中的数据并将其转换为十进制数

asp.net - MySQL session 状态提供程序在过期的 session 上崩溃

java - Java中使用SQL删除记录

mysql - 1000个并发mysql用户需要多少个数据库连接?亚马逊 AWS 数据库

mysql - DBIx::Class 中右侧的 MySQL 函数

php - 如何编写php->mysql查询?

mysql - 编写sql查询来获取搜索结果

php - 如何在 PHP 中回显 GROUP BY 的第一个值

php - 从 mysql 中的一对多连接中提取最新结果

MySQL:删除对数据库的所有引用