如何在沒有單獨的 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)

更新於:2019 年 7 月 30 日

4K+ 次瀏覽

職業生涯從頭開始

完成課程並獲得認證

開始學習
廣告