【ORACLE】数据插入或者更新

本文详细介绍了在ORACLE数据库中实现数据插入或更新的单条数据录入语法。通过使用MERGE语句,可以根据数据库中是否存在特定记录来决定是进行更新操作还是插入新记录。示例展示了如何设置匹配条件,并在匹配时更新数据,在不匹配时插入数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在写入数据的时候有时候需要根据数据库中是否含有该条数据来判断数据是插入还是更新,以下为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相连

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值