首页 | 源码下载 | 网站模板 | 网页特效 | 广告代码 | 网页素材 | 字体下载 | 书库 | 站长工具
会员投稿 投稿指南 RSS订阅
当前位置:主页>网络编程>Oracle教程>资讯:oracle里通过merge语句判断重复插入

oracle里通过merge语句判断重复插入

www.jz123.cn  2010-11-02   来源:   中国建站    责任编辑(袁袁)    我要投递新闻

  由于项目中需要用到批量插入,为了防止用户插入重复的数据,需要先判断插入的数据是不是已经存在,如果存在则忽略这次插入,否则插入这条数据,刚开始的时候是先用一条SQL语句判断,如果返回结果是真(记录已经存在),则忽略,否则插入这条数据,这样的话插入一条数据就要发起两个到数据库的连接,后来发现这样做效率实在太低了,Google了一下,发现oracle数据库支持merge语句,做了个测试,成功了,记录下来供本人及同行以后查阅之用。

  数据库:TEST

  1 CREATE TABLE TEST(

  2 ID NUMBER NOT NULL,

  3 NAME VARCHAR2(30) NOT NULL,

  4 SEX VARCHAR2(2) DEFAULT '男'

  5 )

  插入两条数据:

  1 INSERT INTO TEST VALUES(1,'SUNZHENXING','男')

  2 INSERT INTO TEST VALUES(2,'SUNHAILONG','女')

  MERGE语句:

  1 MERGE INTO TEST A USING TEST B

  2 ON (A.NAME=B.NAME)

  3 WHEN MATCHED THEN

  4 UPDATE SET A.SEX='女'WHERE A.NAME='SUNZHENXING'

  5 WHEN NOT MATCHED THEN

  6 INSERT VALUES (3,'SUNZHENXING','女')

  需要注意的是:MERGE语句中的UPDATE语句和INSERT语句和一般的SQL语句格式有点不同


上一篇:Oracle查询表所有列名的SQL语句 下一篇:Oracle数据库导出步骤

评论总数:0 [ 查看全部 ] 网友评论


关于我们隐私版权广告服务友情链接联系我们网站地图