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;
MySQL使用臨時表的情況
mysql在以下幾種情況會建立臨時表 1 union查詢 2 用到temptable演算法或者是union查詢中的檢視 3 order by和group by的子句不一樣時 4 表連線中,order by的列不是驅動表中的 5 distinct查詢並且加上order by時 6 sql中用到sql ...
mysql臨時表更新 MySql 臨時表
今天在專案中遇到乙個,當mysql的in語句中資料量很大時,建立乙個臨時表的例子。於是樓主整理了一下關於臨時表的知識,與大家分享一下 首先,臨時表只在當前連線可見,當關閉連線時,mysql會自動刪除表並釋放所有空間。因此在不同的連線中可以建立同名的臨時表,並且操作屬於本連線的臨時表。建立臨時表 cr...
mysql 臨時表 限制 Mysql臨時表
當你建立臨時表的時候,你可以使用temporary關鍵字。如 create temporary table tmp table name varchar 10 not null,passwd char 6 not null 或create temporary table if not exists ...