数据库中 有则更新,无则插入的实现

SQL Server中

IF NOT EXISTS (SELECT 1 FROM t WHERE id = 1) INSERT INTO t (id, update_time)
VALUES
    (1, getdate())
ELSE
    UPDATE t
SET update_time = getdate ()
WHERE
    id = 1

 Mysql中

replace into t(id, update_time) values(1, now()); 
#或
replace into t(id, update_time) select 1, now(); 

本质:

replace into 插入数据到表时, 1. 如果发现表中已经有此行数据(根据主键或者唯一索引判断)则先删除此行数据,然后插入新的数据。 2. 否则,直接插入新数据。

注意:表必须有主键或唯一索引,否则会导致出现重复数据。

推荐:

http://blog.csdn.net/aidenliu/article/details/5628455

http://www.cnblogs.com/monian/archive/2014/10/09/4013784.html

原文地址:https://www.cnblogs.com/kzfy/p/5258229.html