一尘不染

根据MySQL中是否存在行执行UPDATE或INSERT

mysql

在MySQL中,我试图找到一种有效的方法来执行更新(如果表中已经存在一行),或者执行INSERT(如果该行不存在)。

到目前为止,我发现了两种可能的方法:

  1. 一个明显的例子:打开一个事务,选择以查找该行是否存在,如果不存在则进行INSERT,如果存在则进行UPDATE,提交事务
  2. 首先将IGNORE插入表中(如果该行已存在,则不会引发错误),然后进行更新

第二种方法避免了交易。

您认为哪一种效率更高,并且有更好的方法(例如使用触发器)?


阅读 334

收藏
2020-05-17

共1个答案

一尘不染

插入…在重复的密钥更新上

2020-05-17