mysql臨時表的使用

mysql使用temporary關鍵字可以創建出一個臨時表。創建的這張表會在於服務器的會話終止時自動消失。
語法:create temporary table 表名
規則:每個會話只能看到自己創建的臨時表,不同的會話可以創建相同表名稱的臨時表。臨時表的表名可以和永久表的名字相同。

A:臨時表再斷開於mysql的連接後系統會自動刪除臨時表中的數據,但這只限於用下面語句建立的表:
1:定義字段

create temporary table tmp_table(
	name varchar(10) not null,
	time date not null
)

更高級點就是:
create temporary  TABLE `temtable` (
  `jws` varchar(100) character set utf8 collate utf8_bin NOT NULL,
  `tzlb` varchar(100) character set utf8 collate utf8_bin NOT NULL,
  `uptime` date NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1″

2:直接將查詢結果導入臨時表:
create temporary table tmp_table select * from table_name

B:另外mysql也允許你在內存中直接創建臨時表,因爲是在內存中,所以速度很快。

 CREATE TEMPORARY TABLE tmp_table (
     name VARCHAR(10) NOT NULL,
     value INTEGER NOT NULL
  ) TYPE = HEAP
  
 那如何將查詢的結果存入已有的表呢?
1、可以使用A中第二個方法
2、使用:insert into temtable (select a,b,c,d from tablea);

臨時表只在當前連接可見,當關閉連接時,Mysql會自動刪除表並釋放所有空間。因此在不同的連接中可以創建同名的臨時表,並且操作屬於本連接的臨時表。

臨時表可以手動刪除:DROP TEMPORARY TABLE IF EXISTS temp_tb;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章