创建临时表时该怎么理解on commit delete rows
答案:2 悬赏:70 手机版
解决时间 2021-04-08 01:32
- 提问者网友:人傍凄凉立暮秋
- 2021-04-07 10:16
创建临时表时该怎么理解on commit delete rows
最佳答案
- 五星知识达人网友:孤独的牧羊人
- 2021-04-07 11:50
session级别的。
这种临时表不占用表空间,而且不同的SESSION之间互相看不到对方的数据。
在会话结束后表中的数据自动清空,如果选了DELETE ROWS,则在提交的时候即清空数据,PRESERVE则一直到会话结束。
可以理解为你在同一个窗口insert,在select可以查到。一个窗口insert,另一个窗口select没数据。
--ON COMMIT DELETE ROWS 说明临时表是事务指定,每次提交后ORACLE将截断表(删除全部行)
--ON COMMIT PRESERVE ROWS 说明临时表是会话指定,当中断会话时ORACLE将截断表。
如果没有 默认是ON COMMIT DELETE ROWS
这种临时表不占用表空间,而且不同的SESSION之间互相看不到对方的数据。
在会话结束后表中的数据自动清空,如果选了DELETE ROWS,则在提交的时候即清空数据,PRESERVE则一直到会话结束。
可以理解为你在同一个窗口insert,在select可以查到。一个窗口insert,另一个窗口select没数据。
--ON COMMIT DELETE ROWS 说明临时表是事务指定,每次提交后ORACLE将截断表(删除全部行)
--ON COMMIT PRESERVE ROWS 说明临时表是会话指定,当中断会话时ORACLE将截断表。
如果没有 默认是ON COMMIT DELETE ROWS
全部回答
- 1楼网友:荒野風
- 2021-04-07 12:13
文档讲此二者皆用于temporary table,
delete rows用于事务相关,也就在事务结束后truncate data in the temporary table.
preserve rows表示在会话结束后清除临时表的数据
前者在事务提交后数据就已经清除了.
后者在会话中止时或者导常退出时数据都会被清除掉.
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯