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 表的臨時副本,因此你可以執行任何操作,比如 INSERT
、UPDATE
或 DELETE
,不必擔心錯誤地影響原始 persons 基表。
提示: 臨時表可以與永久基表同名。如果指定與現有基表相同的臨時表的名稱,則永久基表將被隱藏,直到刪除臨時表為止。
注意: 由於臨時表是特定於會話的,因此兩個不同的會話可以使用相同的臨時表名,而不會相互衝突。
刪除臨時表
臨時表在建立它們的資料庫連線或會話關閉時自動刪除。但是,如果要在不關閉當前會話的情況下刪除它們,則可以使用 DROP TEMPORARY TABLE
語句,如下所示:
mysql> DROP TEMPORARY TABLE persons;
上述語句將從資料庫中刪除臨時表 persons。之後,原始 persons 基表變得可見。