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


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

优质内容筛选与推荐>>
1、c#抓取动态页面WebBrowser
2、Codeforces Round #504 (rated, Div. 1 + Div. 2, based on VK Cup 2018 Final) D. Array Restoration
3、<转>前端工程师编程能力成长之路
4、从stl中容器中删除元素
5、跟我学SharePoint 2013视频培训课程——怎样创建文档库并上传文档(8)


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号





    联系我们

    欢迎来到TinyMind。

    关于TinyMind的内容或商务合作、网站建议,举报不良信息等均可联系我们。

    TinyMind客服邮箱:support@tinymind.net.cn