Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

별도의 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)