【发布时间】:2016-01-08 10:04:09
【问题描述】:
关于在 java 中使用 JDBC 和 MySQL 运行查询:
replace into orders(external_id, channel_id) values ("1001","test");
我想知道订单是否在数据库中插入或替换。
【问题讨论】:
-
iuse: INSERT INTO .. 重复密钥更新
关于在 java 中使用 JDBC 和 MySQL 运行查询:
replace into orders(external_id, channel_id) values ("1001","test");
我想知道订单是否在数据库中插入或替换。
【问题讨论】:
来自manual:
受影响的行数可以很容易地确定是否 REPLACE 仅添加了一行或是否还替换了任何行:检查是否 计数为 1(添加)或更大(替换)。
因此您可以使用ROW_COUNT() 来获取执行查询后受影响的行数。替换将更改现有行时不会更新ROW_COUNT()。
【讨论】:
尝试以下查询:
INSERT INTO orders(external_id, channel_id) VALUES("1001","test") ON DUPLICATE KEY UPDATE external_id="1001", channel_id="test"
【讨论】: