SQL 臨時表

在本教程中,你將學習如何使用 SQL 建立臨時表。

建立臨時表

臨時表是僅對當前會話可見的表,並且在建立它的會話關閉時自動刪除。

因為臨時表沒有永久儲存在資料庫中,所以在需要表只能在很短的時間內執行或測試某些東西的情況下,它會非常有用,之後你希望它自動消失。

語法

CREATE TEMPORARY TABLE 語句用於建立臨時表。

CREATE TEMPORARY TABLE table_name ( column definitions ); 

如果要從頭建立臨時表,可以在建立表時使用 TEMPORARY 關鍵字,即使用 CREATE TEMPORARY TABLE 而不是使用 CREATE TABLE 語句。有關完整的語法和示例,請參閱 create table 一章。

建立現有表的臨時副本

在你只想測試 SQL 查詢而不影響資料庫的情況下,臨時表非常有用。讓我們在 MySQL 資料庫中建立一個現有表的臨時副本。

在 MySQL 命令提示符下鍵入以下命令,然後按 Enter 鍵:

mysql> CREATE TEMPORARY TABLE persons SELECT * FROM persons; 

上面的語句從現有基表 persons 的結果集建立了一個名為 persons 的臨時表。此外,由於它是 persons 表的臨時副本,因此你可以執行任何操作,比如 INSERTUPDATEDELETE ,不必擔心錯誤地影響原始 persons 基表。

提示: 臨時表可以與永久基表同名。如果指定與現有基表相同的臨時表的名稱,則永久基表將被隱藏,直到刪除臨時表為止。

注意: 由於臨時表是特定於會話的,因此兩個不同的會話可以使用相同的臨時表名,而不會相互衝突。

刪除臨時表

臨時表在建立它們的資料庫連線或會話關閉時自動刪除。但是,如果要在不關閉當前會話的情況下刪除它們,則可以使用 DROP TEMPORARY TABLE 語句,如下所示:

mysql> DROP TEMPORARY TABLE persons; 

上述語句將從資料庫中刪除臨時表 persons。之後,原始 persons 基表變得可見。