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