MySQL 无法使用 table 创建外键引用 wp_users

MySQL can't create foreign key reference with table wp_users

我想创建一个 table 来保存 WordPress 项目的客户详细信息。我想将 table 引用给 WordPress 用户,但它总是给我以下消息:

Error: 150 "Foreign key constraint is incorrectly formed")

我在谷歌上搜索了很多,发现有几个人遇到了同样的问题,但他们的修复对我的情况不起作用。 我尝试保留 ON DELETE 和 ON UPDATE 并重命名我的列名,但没有任何改变错误消息。

在我的其他 table 中,创建外键引用完全没有问题。只是 wp_users 不想被这样引用。

CREATE TABLE IF NOT EXISTS klienten(
    klienten_id INTEGER PRIMARY KEY auto_increment,
    fk_user_id BIGINT(20),

    FOREIGN KEY(fk_user_id) REFERENCES wp_users(ID) ON DELETE RESTRICT ON UPDATE CASCADE,

    name VARCHAR(50),
    telefonnummer VARCHAR(15),
    email VARCHAR(60),
    logo_url VARCHAR(120)
);

在 MySQL 中使用 InnoDB 引擎、WordPress 5.8 版并在 phpmyadmin 中执行我的 SQL 脚本。

有人知道哪里出了问题吗?

https://codex.wordpress.org/Database_Description#Table:_wp_users 表示 wp_users.idBIGINT UNSIGNED.

类型

您的 table 中的 fk_user_id 列是 BIGINT。您必须确保数据类型兼容才能使一个引用另一个的外键,而有符号整数类型和无符号整数类型之间的差异足以破坏这一点。

(20) 部分无关紧要,因为那是 just a display hint anyway。但是有符号与无符号对于此目的很重要。