2019-10-11 10:41:52 2177次浏览 3条回答 0 悬赏 50 金钱

我使用“insert into on duplicate key update”插入数据,打印sql执行的返回值是2,update是执行的,但是从数据库中查询的时候数据并没有改变。我直接将程序里执行的插入语句放在sql里面执行就是可以正常执行的,数据也发生了改变。有没有大神指导一下,这会是什么原因呢。感谢!

  • 回答于 2019-10-11 10:54 举报

    打印一下你执行的sql语句,看看是否指定指定更新哪些字段:

    INSERT INTO TABLE (a,b,c) VALUES 
    (1,2,3),
    (2,5,7),
    (3,3,6),
    (4,8,2)
    
    ON DUPLICATE KEY UPDATE b=VALUES(b); // b=VALUES(b)表示更新b字段
    

    具体使用可以百度一下。

    2 条回复
    回复于 2019-10-11 11:15 回复

    程序里面我是直接拼接的sql语句,同一张表里面有的数据update是成功的,有的就不行

    回复于 2019-10-14 15:59 回复

    解决了吗?要不把你的sql语句粘出来看看

  • 回答于 2019-10-12 09:24 举报

    既然能找到不行的数据,那就看成功修改的数据与不行的数据区别。总能看出来问题的

  • 回答于 2019-10-17 14:20 举报

    记得不需要改变的数据设置 unique 索引!

您需要登录后才可以回答。登录 | 立即注册
EizoPeter
总监

EizoPeter

注册时间:2018-08-30
最后登录:2020-06-18
在线时长:34小时12分
  • 粉丝6
  • 金钱2775
  • 威望0
  • 积分3115

热门问题