首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

关于ORACLE对大表操作的效率有关问题

2012-09-01 
关于ORACLE对大表操作的效率问题oralce有一张大表数据量30w以上. table_name现在我要将一定数量数据插入到

关于ORACLE对大表操作的效率问题
oralce有一张大表数据量30w以上. table_name

现在我要将一定数量数据插入到table_name表中 如果表中存在就做更新 如果不存在就插入

有什么好的办法来实现这个功能?

[解决办法]
方法1:merge into
方法2:先update後insert

30算很少的數據了,關聯列建索引

[解决办法]
一个merge into的例子。从表tj_test merge到 tj_test1.

SQL code
create table tj_test(id number,name varchar2(20),age number);insert into tj_test values (1,'jan',23);insert into tj_test values (2,'kk',22);insert into tj_test values (3,'joe',27);create table tj_test1 as select * from tj_test where 1=0;insert into tj_test1 values (1,'jlk',23);merge into tj_test1 tt1 using tj_test tt on (tt1.id=tt.id)  when matched then    update set tt1.name=tt.name, tt1.age=tt.age  when not matched then    insert values(tt.id, tt.name, tt.age);
[解决办法]
那你就先把Excel导入临时表。然后merge into

热点排行