如何在沒有單獨的 CREATE TABLE 的情況下在一個 SELECT 語句中建立一個臨時 MySQL 表?
要在 SELECT 語句中建立臨時表,可以使用 TEMPORARY 關鍵字。
此臨時表對當前會話可見,並且每當會話關閉時,它都會自動銷燬。兩個會話可以使用相同的臨時表。
建立表。
mysql> create table MyTableDemo -> ( -> id int, -> Name varchar(100) -> ); Query OK, 0 rows affected (0.69 sec)
插入一些記錄。
mysql> insert into MyTableDemo values(1,'John'); Query OK, 1 row affected (0.18 sec) mysql> insert into MyTableDemo values(2,'Carol'); Query OK, 1 row affected (0.13 sec) mysql> insert into MyTableDemo values(3,'Bob'); Query OK, 1 row affected (0.12 sec)
顯示所有記錄。
mysql> select *from MyTemporaryTableDemo;
以下是輸出。
+------+-------+ | id | Name | +------+-------+ | 1 | John | | 2 | Carol | | 3 | Bob | +------+-------+ 3 rows in set (0.00 sec)
建立臨時表的語法。
CREATE TEMPORARY TABLE IF NOT EXISTS yourTemporaryTableName AS (SELECT * FROM yourTableName);
現在,讓我們在以下查詢中實現上述語法 -
mysql> CREATE TEMPORARY TABLE IF NOT EXISTS MyTemporaryTableDemo AS (SELECT * FROM MyTableDemo); Query OK, 3 rows affected (0.01 sec) Records: 3 Duplicates: 0 Warnings: 0
檢查所有記錄是否成功複製。
mysql> select *from MyTemporaryTableDemo;
以下是輸出。
+------+-------+ | id | Name | +------+-------+ | 1 | John | | 2 | Carol | | 3 | Bob | +------+-------+ 3 rows in set (0.00 sec)
廣告