mysql關於臨時表的總結

lusklusklusk發表於2019-02-18

mysql臨時表分為兩種,一種是使用create temporary table建立的,稱為為外部臨時表(本文不加說明的情況下,臨時表預設指的是外部臨時表),一種是因union、order by、group by、distinct等語句產生的,稱為內部臨時表。

1、建立臨時表語法create temporary table table_name (column1 type,column1 type,...columnX type);

2、臨時表只對當前使用者可見,當前會話結束的時候,該臨時表會自動刪除,和oracle不一樣,oracle只是資料刪除,臨時表這個表結構永遠存在。

3、一個會話內,臨時表的命名與非臨時表可以同名,一個會話內一旦出現同名的臨時表,則非臨時表對當前會話不可見,任何操作都是在臨時表上進行(show create table table_name、dml、ddl),直到臨時表被刪除。

4、show tables命令不顯示臨時表

5、不同的會話可以建立同名的臨時表,比如會話A可以建立臨時表名temp1,會話B也可以同時建立臨時表名temp1

6、臨時表的表結構存放在tmpdir引數對應的目錄下,命名為#sqlc程式號_執行緒號_序號.frm,例如#sqlc19_7_0.frm、#sqlc19_7_1.frm分別表示7號執行緒下的第一個臨時表、第二個臨時表

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30126024/viewspace-2636316/,如需轉載,請註明出處,否則將追究法律責任。

相關文章