根据MySQL中是否存在行执行UPDATE或INSERT [英] Performing an UPDATE or INSERT depending whether a row exists or not in MySQL

查看:513
本文介绍了根据MySQL中是否存在行执行UPDATE或INSERT的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

In MySQL, I'm trying to find an efficient way to perform an UPDATE if a row already exists in a table, or an INSERT if the row doesn't exist.

到目前为止,我已经找到了两种可能的方法:

I've found two possible ways so far:

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

第二种方法避免了交易.

The second method avoids the transaction.

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

Which one do you think is more efficient, and are there better ways (for example using a trigger)?

推荐答案

在重复键更新中插入...

这篇关于根据MySQL中是否存在行执行UPDATE或INSERT的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆