请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

answer 表保存,获取到数据之后进行answer.save(),发现数据会被覆盖,这个要怎么办呢?

正在回答 回答被采纳积分+3

1回答

bobby 2020-12-02 10:08:12

是不是主键被你赋值了? 如果主键一样 那么这个save操作会变成更新语句

0 回复 有任何疑惑可以回复我~
  • 提问者 weixin_慕慕5288288 #1
    没有被赋值,主键是默认自增的id,发现被覆盖后,我后来设置了唯一主键,然后在保存数据之前进行了查询,之后再进行更新或插入,然后就没问题了;但是我还是不明白之前是怎么回事,会不会是peewee内部处理机制有问题呢?
    回复 有任何疑惑可以回复我~ 2020-12-02 10:58:33
  • bobby 回复 提问者 weixin_慕慕5288288 #2
    你可以看看peewee的save源码,里面有一个重要的逻辑:判断当前的数据的主键是否有设置值,如果有那么就是一个update语句,如果没有那么就是一个insert语句,你这里既然出现了更新操作那么就一定是设置了主键,因为你没有设置主键那你说更新数据了,问题是peewee如何知道更新哪条数据?
    回复 有任何疑惑可以回复我~ 2020-12-03 10:07:23
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信