由于项目中需要用到批量插入,为了防止用户插入重复的数据,需要先判断插入的数据是不是已经存在,如果存在则忽略这次插入,否则插入这条数据,刚开始的时候是先用一条SQL语句判断,如果返回结果是真(记录已经存在),则忽略,否则插入这条数据,这样的话插入一条数据就要发起两个到数据库的连接,后来发现这样做效率实在太低了,Google了一下,发现oracle数据库支持merge语句,做了个测试,成功了,记录下来供本人及同行以后查阅之用。
数据库:TEST
CREATE TABLE TEST(
ID NUMBER NOT NULL,
NAME VARCHAR2(30) NOT NULL,
SEX VARCHAR2(2) DEFAULT '男'
)
插入两条数据:
INSERT INTO TEST VALUES(1,'SUNZHENXING','男')
INSERT INTO TEST VALUES(2,'SUNHAILONG','女')
MERGE语句:
MERGE INTO TEST A USING TEST B
ON (A.NAME=B.NAME)
WHEN MATCHED THEN
UPDATE SET A.SEX='女'WHERE A.NAME='SUNZHENXING'
WHEN NOT MATCHED THEN
INSERT VALUES (3,'SUNZHENXING','女')
需要注意的是:MERGE语句中的UPDATE语句和INSERT语句和一般的SQL语句格式有点不同
分享到:
相关推荐
主要介绍了在MySQL中实现插入或更新操作(类似Oracle的merge语句)的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
oracle使用 merge 更新或插入数据(总结)
关于Oracle中merge into的用法,比较实用哦
浅谈Oracle数据库中Merge Into的用法.pdf
在Oracle 9i R2版中引入的MERGE语句通常被称作“更新插入”(upsert),因为使用MERGE可以在同一个步骤中更新(update)并插入(insert)数据行。。。。。。
oracle merge 用法详解
Oracle中merge into的使用 很有用的哦 学习一下
详细介绍了使用 BULK COLLECT 进行批量操作 提高sql的执行效率 使用MERGE INTO USING 一条sql搞定 新增和修改 使用connect by 进行递归树查询
根据一个源数据表对另一个数据表进行确定性的插入、更新和删除这样复杂的操作,运用新的MERGE语句,开发者用一条命令就可以完成。对两个表进行信息同步时,有三步操作要进行。首先要处理任何需要插入目标数据表的新...
oracle Merge 函数
oracle merge into的使用,开发必备的。
可通过merge语句功能,进行数据同步存储功能,里面有具体事例可供参考。大大减少了开发时间,提高了工作执行效率。
DB2 merge语句使用教程
oracle同一个表中使用merge
MERGE语句是Oracle9i新增的语法,用来合并UPDATE和INSERT语句。 通过MERGE语句,根据一张表或多表联合查询的连接条件对另外一张表进行查询,连接条件匹配上的进行UPDATE,无法匹配的执行INSERT。这个语法仅需要一次...
DB2中的Merge语句可以将一个表中的数据合并到另一个表中,在合并的同时可以根据条件进行插入、删除、更新等操作,功能非常强大。
实用基础SQL语句;oracle sqlldr;SQL基础语句;merge;分组排序;条件赋值;表连接。简单示例,Oracle数据库文档数据导入
oracle使用 merge 更新或插入数据(总结@新