merge在oracle用以从另一张表中取数据插入到一张表中,如果两张表中记录符合某些条件,则替换,如果不符合则插入。下面的例子是把mergetest中记录更新到newmergetest,如果两张表的id相同,则更新newmergetest,否则插入:
首先建两张测试表:
create table mergetest(id number primary key,name varchar(20));
create table newmergetest(id number primary key,name varchar(20));
往两张表中插入数据:
insert into newmergetest values(1,'first');
insert into newmergetest values(2,'second');
insert into mergetest values(1,'one')
insert into mergetest values(2,'two');
insert into mergetest values(3,'three');
运行更新sql语句:
MERGE INTO newmergetest m
using (select * from mergetest) t
ON (m.id = t.id)
WHEN NOT MATCHED THEN
INSERT VALUES (t.id,t.name)
WHEN MATCHED THEN
UPDATE SET m.name = t.name
执行完后,newmergetest中的记录将和mergetest中的一致。不会因为违反主键约束而更新失败。
分享到:
相关推荐
实用基础SQL语句;oracle sqlldr;SQL基础语句;merge;分组排序;条件赋值;表连接。简单示例,Oracle数据库文档数据导入
一个简单的实用程序 PL/SQL 包,允许对 Oracle 中的合并操作插入/更新/删除的行进行计数。 包的需要 Oracle不提供获取行数的功能。 插入 更新 已删除 使用 MERGE 操作完成所有操作时。 这个简单的实用程序是为了...
有近20年使用Oracle技术产品以及Oracle数据库管理员/Oracle数据库应用管理员的经验,是真正应用集群、性能调优以及数据库内部属性方面的专家。同时是一位演讲家及Oracle ACE。 JARED STILL 从1994年就开始使用...
本书主要覆盖Oracle开发必备的重要知识点:数据库编程规范、Oracle开发常用工具及使用、MERGE方法、神秘的NULL和讨厌的CHAR、扩展GROUP BY、Oracle自动类型转换、Oracle分析函数、Oracle层次查询、11g R2新特性之...
本书主要覆盖Oracle开发必备的重要知识点:数据库编程规范、Oracle开发常用工具及使用、MERGE方法、神秘的NULL和讨厌的CHAR、扩展GROUP BY、Oracle自动类型转换、Oracle分析函数、Oracle层次查询、11g R2新特性之...
本书主要覆盖Oracle开发必备的重要知识点:数据库编程规范、Oracle开发常用工具及使用、MERGE方法、神秘的NULL和讨厌的CHAR、扩展GROUP BY、Oracle自动类型转换、Oracle分析函数、Oracle层次查询、11g R2新特性之...
10.1 描述和使用SQL中的字符、数字和日期函数 348 10.1.1 定义函数 348 10.1.2 函数类型 348 10.1.3 使用大小写转换函数 349 10.1.4 使用字符操作函数 350 10.1.5 使用数字函数 353 10.1.6 使用日期 355 ...
RBO遵循简单的分级方法学,使用15种级别要点,当接收到查询,优化器将评估使用到的要点数目, 然后选择最佳级别(最少的数量)的执行路径来运行查询。 CBO尝试找到最低成本的访问数据的方法,为了最大的吞吐量或最快的...
Oracle技术_5分钟会用存储过程_存储过程简单实例 包括建表及初始化数据,直接运行就可以用 包含循环、条件、增改查、参数传入、变量赋值、java调用等 http://blog.csdn.net/ooppookid/article/details/41206963
SQL Server中这是比较容易解决的,而Oracle中不知道方法了。 SQL Server中类似问题的解决方法 后来只好用笨的方法: 首先,将数据复制到Excel;(假设称测试库的表为A–含有数据) 然后,在开发库中...
10.1 描述和使用SQL中的字符、数字和日期函数 348 10.1.1 定义函数 348 10.1.2 函数类型 348 10.1.3 使用大小写转换函数 349 10.1.4 使用字符操作函数 350 10.1.5 使用数字函数 353 10.1.6 使用日期 355 ...
以前只会写一些简单的updaet语句,比如updae table set c1=’XXX’ 之类的 今天遇到一个数据订正的问题,项目背景如下,有个表A,有两个字段a1,a2还有一个关联表B,其中也有两个字段,b1和b2。其中a2和b2是关联的,...
ExamDiff 对比工具, 简单、 实用 、方便、 无需安装
一种不是很中肯的说法是,mysql能支持千万级别的数据,oracle能支持上亿级别的数据,超过这个级别,可能会出现性能瓶颈。 但实际应用场景中,我们经常会遇到如下情况: 时间积累,表体积变大,业务要求不能迁移历史...
4.2 在SELECT语句中使用字符.数字和日期函数 4.2.1 使用字符大小写转换函数 4.2.2 使用字符操作函数 4.2.3 使用数字函数 4.2.4 使用日期 4.2.5 使用日期函数 4.3 认证小结 4.4 本章 测试题 4.4.1 自...
1 性能优化 1.1 避免频繁 commit,尤其...说明:除非是单据的单号,要求必须是唯一,并且依据流水号不可以跳号,不然在大量交易的表格中,不在乎跳耗时,要取得唯一的Primary Key 建议使用Oracle Sequence这样速度会较...
Oracle,TELUS等在内的领先公司的信任→每天有100,000多个用户享用→超过1,461多个销售团队使用计划和定价14天免费试用ContactMonkey!这包括无限的电子邮件跟踪,延迟发送,邮件合并以及完整的Salesforce电子邮件...