其他分享
首页 > 其他分享> > 临时表 on commit delete rows 与 on commit preserve rows 的区别

临时表 on commit delete rows 与 on commit preserve rows 的区别

作者:互联网

-- 事务级临时表:提交时删除数据

create global temporary  table tmp_table1

(

       x     number

) on commit delete rows ;

 

-- 会话级临时表:会话结束时删除数据

create global temporary table tmp_table2

(

       x     number

) on commit preserve rows ;

 

insert into tmp_table1

values(1);

insert into tmp_table1

values(2);

insert into tmp_table1

values(3);

 

 

insert into tmp_table2

values(1);

insert into tmp_table2

values(2);

insert into tmp_table2

values(3);

 

select * from   tmp_table1 ;

X

1

2

3

 

 

select * from   tmp_table2 ;

X

1

2

3

 

commit;

 

select * from   tmp_table1 ;

-- 无结果输出

select * from   tmp_table2 ;

X

1

2

3

 

SQL> conn / as sysdba;

SQL> select * from   user01.tmp_table1 ;

-- 无结果输出 

SQL> select * from   user01.tmp_table2 ;

-- 无结果输出

标签:preserve,table2,rows,insert,into,table1,commit,tmp,select
来源: https://www.cnblogs.com/jijm123/p/16327774.html