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;