MySQL、SqlServer和Oracle 数据库 Update 存在则更新,不存在则插入on duplicate key update

SQL数据库如下:

DECLARE @isexist INT--申明变量

            select @isexist=count(*) from Table1  where ip=@ip
            if(@isexist>0)
           update Table1  set ConnTimes=ConnTimes+@ConnTimes,Connecting=@Connecting
           where  ip=@ip
            else
           insert into Table1  (Name,Descriptions,ip,ConnTimes,Connecting)values

           (@Name,@Descriptions,@ip,1,1)


Oracle如下:           

MERGE INTO MM_FREZENDPRESALEORDER T1
USING (SELECT '990000006693' AS ordercode,'a' AS salecode,'b' as warecode,1 as frezenqty  FROM dual) T2
ON ( T1.ordercode=T2.ordercode and T1.warecode=T2.warecode and T1.salecode=T2.salecode)
WHEN MATCHED THEN
    UPDATE SET T1.frezenqty = T1.frezenqty + T2.frezenqty
WHEN NOT MATCHED THEN 
    INSERT (ID,ordercode,warecode,salecode,createdate,frezenqty) VALUES(SYS_GUID(),T2.ordercode,T2.warecode,T2.salecode,sysdate,T2.frezenqty);

    


最近做MySQL,例子如下:

 insert into  pet_store.logintest(Id, loginName, userName, passWord, createDate, Creator, modifyDate, Modifier, Remark)
            select @Id as Id ,@loginName as loginName,@userName as userName, @passWord as passWord, @createDate as createDate,
            @Creator as Creator,@modifyDate as modifyDate, @Modifier as Modifier, @Remark as Remark from dual 
            on duplicate key update loginName=values(loginName),userName=values(userName),passWord=values(passWord),
            modifyDate=values(modifyDate),Modifier=values(Modifier),Remark=values(Remark)

    
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值