MySQLi-임시 테이블

임시 테이블은 경우에 따라 임시 데이터를 유지하는 데 매우 유용 할 수 있습니다. 임시 테이블에 대해 알아야 할 가장 중요한 것은 현재 클라이언트 세션이 종료 될 때 삭제된다는 것입니다.

앞서 언급했듯이 임시 테이블은 세션이 살아있는 동안에 만 지속됩니다. PHP 스크립트에서 코드를 실행하면 스크립트 실행이 완료되면 임시 테이블이 자동으로 삭제됩니다. MySQLi 클라이언트 프로그램을 통해 MySQL 데이터베이스 서버에 연결 한 경우 클라이언트를 닫거나 테이블을 수동으로 삭제할 때까지 임시 테이블이 존재합니다.

다음은 임시 테이블 사용을 보여주는 예입니다. 다음을 사용하여 PHP 스크립트에서 동일한 코드를 사용할 수 있습니다.mysqli_query() 함수.

mysql> CREATE TEMPORARY TABLE SalesSummary (
   -> product_name VARCHAR(50) NOT NULL
   -> , total_sales DECIMAL(12,2) NOT NULL DEFAULT 0.00
   -> , avg_unit_price DECIMAL(7,2) NOT NULL DEFAULT 0.00
   -> , total_units_sold INT UNSIGNED NOT NULL DEFAULT 0
   -> );
Query OK, 0 rows affected (0.00 sec)

mysql> INSERT INTO SalesSummary
   -> (product_name, total_sales, avg_unit_price, total_units_sold)
   -> VALUES
   -> ('cucumber', 100.25, 90, 2);

mysql> SELECT * FROM SalesSummary;
+--------------+-------------+----------------+------------------+
| product_name | total_sales | avg_unit_price | total_units_sold |
+--------------+-------------+----------------+------------------+
| cucumber     |      100.25 |          90.00 |                2 |
+--------------+-------------+----------------+------------------+
1 row in set (0.00 sec)

SHOW TABLES 명령을 실행하면 임시 테이블이 목록에 나열되지 않습니다. 이제 MySQLi 세션에서 로그 아웃 한 다음 SELECT 명령을 실행하면 데이터베이스에서 사용 가능한 데이터를 찾을 수 없습니다. 임시 테이블도 존재하지 않습니다.

임시 테이블 삭제

기본적으로 모든 임시 테이블은 데이터베이스 연결이 종료 될 때 MySQLi에 의해 삭제됩니다. 그래도 중간에 삭제하려면 DROP TABLE 명령을 실행하여 삭제합니다.

다음은 임시 테이블 삭제에 대한 예입니다.

mysql> DROP TABLE SalesSummary;
mysql>  SELECT * FROM SalesSummary;
ERROR 1146: Table 'TUTORIALS.SalesSummary' doesn't exist