临时表分两种类型的临时表:
1. 会话级临时表
2. 事物级临时表
临时表:顾明思义,存在该表的数据是临时的。
会话临时表:该临时表肯定与会话有关。会话在不退出时,则些临时表中的数据存在,会话退出,该临时表中的数据也会随之消失。在多用户操作的情况下,一个会话从来不阻塞另一个会话使用临时表。即使锁定临时表,一个会话也不会阻塞其他会话使用临时表。其语法为:
Create global temporary table table_name
(col1 type1, col2 type2 …)
On commit preserve rows;
事务临时表:指该临时表与事务相关,当进行事务提交或者事务回滚的时候,临时表中的数据将自行被截断,其他的内容和会话级的临时表的一致(包括退出SESSION的时候,事务级的临时表也会被自动截断)。语法为:
Create global temporary table table_name
(col1 type1, col2 type2 …)
On commit delete rows;