1 oracle临时表分为会话级和事务级,oracle临时表不管是会话级还是事务级在回话结束或者事务结束之后表结构和元数据都会存储在磁盘里,不会自动删除,需要手工会删除。 ①会话级建表语句 1 create global temporary table material_tmp_1( id varchar2(10) ) on commit preserve rows; 2 create global temporary table material_tmp_1 on commit preserve rows as seelct * from bd_material ②事务级建表语句 1 create global temporay table material_tmp_1(id varchar2(10)) on commit delete rows; 1 create global temporay table material_tmp_1 on commit delete rows as select * from bd_material; 2 sqlserver 临时表,sqlserver临时表和oracle有些不同,sqlserve的会话级临时表只存在于内存中,仅在当前会话可见,会话结束后sqlsever会自动的删除表结构、表的元数据和数据,全局临时表对全部会话可见。sqlserver的临时表建表和普通表是一样的,只是会话级临时表在表名加上#前缀,全局临时表加上##前缀。 3 mysql临时表 MySQL临时表也分成两种,1是全局临时表、2是临时表 1 全局临时表(也叫内存表),mysql的全局临时表和oracle、sqlserver的事务级临时表、全局临时表一样,都是对所有会话可以,表结构和元数据保存在data目录下的tablename.frm文件中。 2 临时表只在当前会话可见,当会话结束mysql会自动删除表(包括表结构、元数据和数据) 一个客户端默认可以同时打开临时表最多是32个,这是可以调整,调试服务段的max_tmp_tables即可。 临时表和内存表所使用内存大小可以通过My.cnf中的max_heap_table_size、tmp_table_size指定。 内存表建表语句 create temporary material_tmp_1(id varchar(10)) engine=menory;
转载于:https://my.oschina.net/u/3739402/blog/1632741