微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决MySQL 无法使用表 wp_users 创建外键引用

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

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

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

在我的其他表中,创建外键引用根本没有问题。只是 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)
);

使用 InnoDB 引擎在 MysqL 中工作,wordpress 5.8 版并在 PHPmyadmin 中执行我的 sql 脚本。

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

解决方法

https://codex.wordpress.org/Database_Description#Table:_wp_users 表示 wp_users.id 的类型为 BIGINT UNSIGNED

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。