mysql 不能添加外键 1215_Mysql错误:1215无法添加外键约束

引用表是'group'(InnoDB) .

它有一个'id'列定义为INT(11),不可为空,自动增量,主键

引用表是'用户(InnoDB)

它将'group_id'列定义为INT(11),不可为空 .

在引用表中已经存在基于'group_id'列的唯一索引

但是谁在执行

ALTER TABLE `user`

ADD CONSTRAINT `user_group` FOREIGN KEY (`group_id`) REFERENCES `group` (`id`)

ON DELETE CASCADE

ON UPDATE CASCADE

我收到了一个错误

错误:1215无法添加外键约束

我添加了数据库转储

CREATE TABLE IF NOT EXISTS `groups` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`name` varchar(255) NOT NULL,

`language` varchar(255) NOT NULL,

`order` int(11) NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

CREATE TABLE IF NOT EXISTS `user` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`group_id` int(11) NOT NULL,

PRIMARY KEY (`id`),

UNIQUE KEY `group_id` (`group_id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

检查清单

是Db InnoDB吗?是

所有表都是InnoDB吗?是

引用表上是否存在唯一索引?是

引用和引用列完全相同的类型?是

问题很简单: why cannot I create this foreign key ?

更新1:我尝试用ON DELETE RESTRICT替换ON DELETE CASCADE并且没有任何变化,我也尝试删除ON DELETE和ON UPDATE没有任何变化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值