Computer >> Máy Tính >  >> Lập trình >> MySQL

Làm cách nào để tạo một bảng MySQL tạm thời trong một câu lệnh SELECT mà không có một bảng CREATE TABLE riêng biệt?

Để tạo bảng tạm thời trong câu lệnh SELECT, chúng tôi sử dụng từ khóa TEMPORARY.

Bảng tạm thời này sẽ được hiển thị cho phiên hiện tại và bất cứ khi nào đóng một phiên, nó sẽ tự động bị hủy. Hai phiên có thể sử dụng cùng một bảng tạm thời.

Tạo bảng.

mysql> create table MyTableDemo
   -> (
   -> id int,
   -> Name varchar(100)
   -> );
Query OK, 0 rows affected (0.69 sec)

Chèn một số bản ghi.

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)

Để hiển thị tất cả các bản ghi.

mysql> select *from MyTemporaryTableDemo;

Đây là kết quả đầu ra.

+------+-------+
| id   | Name  |
+------+-------+
|    1 | John  |
|    2 | Carol |
|    3 | Bob   |
+------+-------+
3 rows in set (0.00 sec)

Cú pháp để tạo một bảng tạm thời.

 CREATE TEMPORARY TABLE IF NOT EXISTS yourTemporaryTableName AS (SELECT * FROM yourTableName);

Bây giờ chúng ta hãy triển khai cú pháp trên trong truy vấn sau -

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

Để kiểm tra xem tất cả các bản ghi đã được sao chép thành công hay chưa.

mysql> select *from MyTemporaryTableDemo;

Đây là kết quả đầu ra.

+------+-------+
| id   | Name  |
+------+-------+
|    1 | John  |
|    2 | Carol |
|    3 | Bob   |
+------+-------+
3 rows in set (0.00 sec)