egg里使用sequelize主键自增的问题
发布于 5 年前 作者 gejigejigeji 8901 次浏览 来自 问答

我的model //model/user.js 1.png

//我的调用 //controller/home.js 2.png

补充:我按照EGG的官网引入了sequelize的官方实例,在sequelize.create()插入数据的时候,第一条数据不报错,第二条数据报错:Duplicate entry ‘0’ for key ‘PRIMARY’,引起问题的原因是因为sequelize在插入数据时autoIncrement并没有起作用,主键id一直都是0,并没有自增。

拜托大佬们了,已经百度全网了,收到的回答就是让我设置自增ID,可是从navicate for mysql里面来看已经是自增的了,创建model里也指定autoIncrement了。

9 回复

哇。神奇的网络。

面试时各种大神各种吹。天昏地暗日月无光造航母, 结果连一个官网示例问题都没人搞得定。哇。 神奇网络

会不会是User.sync()的原因?尝试注释一下看看

@gejigejigeji 哇个锤子哟 这个sync你生成表到数据库中的时候这个字段有子自增么

@gejigejigeji 心态就这样崩了?

我用sync()也出过问题,不知道为什么,然后用的migration,就可以了

我的建议是尽量避免用sync(),因为sync真的会出问题,有时候服务都启动不起来,我之前就遇到过;

mysql my.ini腾讯云centos初始化安装的时候,会自动配置不允许自增,删掉就行了。S开头的单词我忘了。

哎,还是造福下社会吧。

歪个楼,修改表结构的时候感觉使用sync({alter: true}) 比较好一点, sync({ force: true })的话取决于你的数据库原来的设置,还是可能会出问题。

我以为终于有人发现了sequelize的隐藏bug,显然不是。

回到顶部