gpt4 book ai didi

mysql - INSERT IGNORE - 如何判断是否已插入?

转载 作者:可可西里 更新时间:2023-11-01 07:33:11 24 4
gpt4 key购买 nike

我将需要一个 SQL 查询来INSERT .. ON DUPLICATE KEY UPDATE(或INSERT IGNORE INTO)我的表。

我需要知道是否发生了更新实际或者是否插入了新行。

一个很好的引用是这个 SO answer ,不幸的是,对所采取的行动没有答案。

至于现在我正在使用 INSERT .. ON DUPLICATE KEY UPDATE:

INSERT INTO `tbl` (`CLIENT_ID`, `COMP_ID`, `DATETIME`) VALUES (12334,32,NOW())
ON DUPLICATE KEY UPDATE
`COMP_ID`=VALUES(`COMP_ID`), `DATETIME`=VALUES(`DATETIME`);";

并检查 affected_rows 值。
如果 affected_rows 等于 1,表示 -> 插入新行
如果 affected_rows 等于 2,则表示 -> 行已更新

我不希望在重复的情况下发生任何更改,但我想知道是否存在重复。

使用MySQL

最佳答案

检查受影响的行数:

  • 1 的返回值表示发生了INSERT
  • 2 的返回值表示发生了UPDATE

如果您使用的是 JDBC,则这是 update()execute() 调用的 int 返回值。

所有框架都有将这个值传回给你的方法,例如 Hibernate 的 Query.executeUpdate() 返回这个 int 值。

关于mysql - INSERT IGNORE - 如何判断是否已插入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13694831/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com