开发者社区> 问答> 正文

mysql 外键能否关联自增的字段?

我是用django。
先是建立了表A 主键Aid 自增
然后建立表B 主键Bid 自增 外键Aid
构建表结构的时候 报错 说:
`error 1075 42000 incorrect table definition there can be only one auto column
and it must be defined as a key`
请问各位大神,如何解决?

展开
收起
落地花开啦 2016-02-15 11:52:09 3771 0
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人
      关键问题是出在ForeignKey上,因为我们自定义了BigIntegerAutoField,将其数据类型设为了bigint AUTO_INCREMENT,在建立外键里,默认情况下这个数据类型也会直接返回,因此造成了tucao_reply表里有了两个自增的字段,这是mysql不允许的。
      因此我们就需要改变这种默认的逻辑,而参考系统中ForeignKey的实现,发现系统其实对于AutoField也是做了特殊处理的,相关代码可以参考Django的源代码,因此我也就照着这样的方式,扩展了ForeignKey,生成的SQL语句就没有问题了
    2019-07-17 18:43:09
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

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

相关镜像