• sql mysql和sqlserver存在就更新,不存在就插入的写法(转)


    转自:http://hi.baidu.com/tidy0608/item/ff930fe2436f2601560f1dd9

    sqlsever数据存在就更新,不存在就插入的两种方法

    两种经常使用的方法:

    1. Update, if @@ROWCOUNT = 0 then insert

    UPDATETable1 SETColumn1 = @newValue WHEREId = @id

    IF@@ROWCOUNT= 0

    BEGIN

    INSERT INTOTable1 (Id, Column1) VALUES(@id, @newValue)

    END

    如果一行数据存在更新就有效,否则插入将被执行.个人感觉这种方法倾向于数据多半存在于数据表中的情况;

    2. If row exists update, otherwise insert

    IFEXISTS(SELECT* FROMTable1 WHEREId = @id)

    BEGIN

    UPDATETable1 SETColumn1 = @newValue WHEREId = @id

    END

    ELSE

    BEGIN

    INSERT INTOTable1 (Id, Column1) VALUES(@id, @newValue)

    END

    在这种方法,select语句执行后紧接着就是执行update或是insert,消耗资源是少与方法一的.

    3.mysql数据存在就更新,不存在就插入

    insert into T(f1,f2,f3) values(v1,v2,v3) on DUPLICATE KEY UPDATE v3=values(v3)+v3

  • 相关阅读:
    node 随手记录
    node 调试器
    GIT
    原型
    ES6 (11):Class
    ES6 (10):Generator
    集合框架02
    集合框架01
    实现各种尺寸的图片裁剪成圆形头像
    鼠标移上显示 ( 自定义内容 ) 弹出框
  • 原文地址:https://www.cnblogs.com/newlangwen/p/4810734.html
Copyright © 2020-2023  润新知