【问题标题】:Check if INSERT or REPLACE [duplicate]检查是否插入或替换[重复]
【发布时间】:2016-01-08 10:04:09
【问题描述】:

关于在 java 中使用 JDBC 和 MySQL 运行查询:

replace into orders(external_id, channel_id) values ("1001","test");

我想知道订单是否在数据库中插入或替换。

【问题讨论】:

标签: java mysql sql jdbc


【解决方案1】:

来自manual

受影响的行数可以很容易地确定是否 REPLACE 仅添加了一行或是否还替换了任何行:检查是否 计数为 1(添加)或更大(替换)。

因此您可以使用ROW_COUNT() 来获取执行查询后受影响的行数。替换将更改现有行时不会更新ROW_COUNT()

【讨论】:

    【解决方案2】:

    尝试以下查询:

    INSERT INTO orders(external_id, channel_id) VALUES("1001","test") ON DUPLICATE KEY UPDATE external_id="1001", channel_id="test"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-06
      • 2017-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-11
      • 2013-03-31
      • 2018-04-18
      相关资源
      最近更新 更多