mysql - 当表和列存在并且类型相同时,为什么我不能在这里添加外键?
问题描述
第一张桌子
CREATE TABLE `payments` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`payment_status_id` int(10) unsigned NOT NULL,
PRIMARY KEY (`id`)
);
第二个表所以我试图添加一个外键但得到一个错误:ER_CANNOT_ADD_FOREIGN: Cannot add foreign key constraint
现在我无法弄清楚为什么会发生这个错误。列类型相同吗?在创建两个表之后,甚至稍后单独添加密钥。我在这里想念什么?
CREATE TABLE `payment_statuses` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`status` char(20) COLLATE utf8mb4_unicode_ci NOT NULL,
PRIMARY KEY (`id`)
);
添加 FK:
alter table payments add constraint `payments_payment_status_id_foreign` foreign key (`payment_status_id`) references `id` (`payment_statuses`);
解决方案
推荐阅读
- c# - 如何在 Unity C# 中检查对象是否面向某个方向
- mysql - 无法在 Mac 中使用 root 访问新安装的 mysql
- fastapi - 为整个应用添加 API 密钥后,如何将 FastAPI 中的 api 路径列入白名单?
- javascript - 如何从 NodeJs 中的字符串触发命令行
- python - 如何将Numpy数组每一行的最小k值设置为0?
- reactjs - 将 React 添加到网站时,如何在功能组件中使用钩子?
- angular - 角度 CLI 将构建警告更改为错误
- python - 如何将客户分配给 Django 中的用户?
- modal-dialog - 带有 gatsby-image 的全尺寸图像的模态 - 限制高度和宽度
- python - 如何获取下载按钮的 url 并在 Python 中读取 CSV 文件?