步骤:
1、登录表所在数据库及用户。
2、在左边的树找到要生成语句的表,比如emp表,在表名上点右键,出现下列菜单:
3、选择DBMS_元数据——>DDL
4、等待出结果即可。数据类型都一样的么,可以考虑用触发器实现 以oracle数据库为例 有两张表test和test01 字段有id name age sal
create or replace trigger TRIG_UPDATE_TEST
after insert or delete or update on test
for each row
declare
l_id varchar2(50);
l_name varchar2(50);
l_age number;
l_sal number;
begin
if(deleting or updating) then
delete test01
where id=:oldid;
if(deleting) then
return;
end if;
end if;
l_id:=:newid;
l_name:=:newname;
l_age:=:newage;
l_sal:=:newsal;
begin
insert into test01(id,name,age,sal) values(l_id,l_name,l_age,l_sal);
end;
end TRIG_UPDATE_TEST;
再简化点就是在触发器中不声明变量,直接用:new字段代替
哎,没分啊你数据有那么大,更新肯定是很慢的,你可以从下面两个方面考虑:
一、你要在3千万的数据里面查询,一定要走索引,就是对查询条件的字段建立索引
二、插入到的表和更新的表如果太大,如果插入非常频繁,可以插入取消部分索引。declare
j number := 4;
k number := 0;
cursor cur_get_data is
select a1 from TableA;
begin
for i in cur_get_data
loop
update TableB
set TableBb2 = ia1
where TableBb1 <= j and TableBb1 >= k;
k := j;
j := j+ 5;
end loop;
end ;
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)