我是用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`
请问各位大神,如何解决?
关键问题是出在ForeignKey上,因为我们自定义了BigIntegerAutoField,将其数据类型设为了bigint AUTO_INCREMENT,在建立外键里,默认情况下这个数据类型也会直接返回,因此造成了tucao_reply表里有了两个自增的字段,这是mysql不允许的。
因此我们就需要改变这种默认的逻辑,而参考系统中ForeignKey的实现,发现系统其实对于AutoField也是做了特殊处理的,相关代码可以参考Django的源代码,因此我也就照着这样的方式,扩展了ForeignKey,生成的SQL语句就没有问题了
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。