1

我有一个带有 3 列 A、B、C 的表 SomeTable 和一个唯一的 A 和 B

如果 A,B 已经存在,我会从客户端传递一些值以插入或更新 C。我想知道服务器是否为每个值完成了更新或插入,如果它是更新我想要 C 的旧值....

我目前正在这样做

While values to insert {
   Insert A,B,C
   if success memorizing the value continue the while
   else if the sql error is "duplicate key" {
       select old value of C for A,B
       update C for A,B...
   }    
}

这意味着对 MySQL 的 3 次调用....

有没有办法通过触发器、过程或“魔术”查询来做到这一点?

4

1 回答 1

1

您可以通过两个查询来做到这一点:

  1. 尝试SELECT旧值。如果存在,则在第 2 步后返回
  2. UPDATEINSERT根据需要
于 2013-09-22T18:02:40.770 回答