首页 > 解决方案 > 当表和列存在并且类型相同时,为什么我不能在这里添加外键?

问题描述

第一张桌子

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`);

标签: mysql

解决方案


推荐阅读