开发者社区> 问答> 正文

Mysql 外键为什么不能多对多

如下语句
`mysql> alter table todomodel_tasks add foreign key(user,projects) references tod
omodel_projects(user,name);`
在tododmoel_projects中 user和name 是一个组合,他们合起来是主键。
不是说外键只要对应其他表里的主键就好了吗。
然而会报下列错误
Cannot add foreign key constraint
问问各位大神们这是咋回事呢

展开
收起
蛮大人123 2016-02-06 22:41:20 2270 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    你所用的 todomodel_projects(user,name) 是复合主键或叫联合主键,如果另一个表想做外链键引用这个复合主键,其所用的字段类型必须与主键对应一致,你看看todomodel_tasks.name与todomodel_projects.projects这两个字段的类型是不是不一致,所以导致创建错误。

    2019-07-17 18:38:45
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像