【ORACLE】数据插入或者更新

在写入数据的时候有时候需要根据数据库中是否含有该条数据来判断数据是插入还是更新,以下为ORACLE插入更新语法(单条数据录入)
	<insert id="insertOrUpdate" parameterType="com.stylefeng.guns.rest.common.persistence.model.Token">
		<selectKey resultType="java.lang.Integer" order="BEFORE" keyProperty="id">
			select SYS_SEQ.Nextval as id from DUAL
		</selectKey>
		MERGE INTO SYS_TOKEN a
		USING (
		SELECT #{id,jdbcType=INTEGER} as id,#{userId,jdbcType=INTEGER} as userId, #{uuid,jdbcType=VARCHAR} as uuid,#{osType,jdbcType=VARCHAR} as osType, #{osDevice,jdbcType=VARCHAR} as osDevice,
		#{token,jdbcType=VARCHAR} as token,#{createDate,jdbcType=TIMESTAMP} as createDate,#{updateDate,jdbcType=TIMESTAMP} as updateDate,#{osVersion,jdbcType=VARCHAR} as osVersion
		FROM DUAL
		) b
		ON (a.osType = b.osType AND a.uuid = b.uuid)
		WHEN MATCHED THEN
		UPDATE SET a.userId = b.userId,a.osDevice = b.osDevice, a.token = b.token,
		a.updateDate = b.updateDate,a.osVersion = b.osVersion
		WHEN NOT MATCHED THEN
		INSERT (id, userId, uuid, osType, osDevice, token, createDate,updateDate, osVersion)
		VALUES (b.id,b.userId,b.uuid,b.osType,b.osDevice,b.token,b.createDate,b.updateDate,b.osVersion)
	</insert>
重要点:

该段为匹配条件,可添加多个条件,以AND相连

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值