Latest web development tutorials

MySQL의 임시 테이블

MySQL은 임시 테이블에 우리는 몇 가지 임시 데이터가 매우 유용 저장해야합니다. 임시 테이블은 현재 연결 접속이 폐쇄 될 때, MySQL이 자동 테이블을 삭제 한 모든 공간을 해제한다에서 볼 수있다.

버전 3.23 이상 당신의 MySQL 버전 이전의 임시 테이블 MySQL을 사용 할 수없는 경우 MySQL 버전 3.23에서 임시 테이블이 추가됩니다. 하지만 지금은 다른 거의 MySQL 데이터베이스 서버의 이러한 낮은 버전을 사용하지 있습니다.

현재 연결에서만 볼 수 MySQL의 임시 테이블, 당신은 PHP 스크립트 실행이 완료했을 때 다음, 임시 테이블을 생성하는 PHP MySQL의 스크립트를 사용하는 경우는, 임시 테이블이 자동으로 소멸됩니다.

당신은 물론, 클라이언트 프로그램이 임시 테이블을 파괴 종료하는 경우에만 다음, 임시 테이블을 만들 MySQL 데이터베이스 서버를 연결하는 다른 MySQL 클라이언트 프로그램을 사용하는 경우, 당신은 또한 수동으로 파괴 할 수 있습니다.

다음은 MySQL의 임시 테이블의 사용의 간단한 예는, 다음의 SQL 코드가 PHP 스크립트는 mysql_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)

당신이 쇼 테이블은 데이터 테이블의 목록을 표시 명령을 사용하면 SalesSummary 테이블을 볼 수 없습니다.

현재 MySQL의 세션을 종료하면, 다음, 데이터는 원래 임시 테이블을 생성 읽을 수있는 SELECT 명령을 사용하여 당신은 당신이 종료 할 때 임시 테이블이 파괴 되었기 때문에 데이터베이스 테이블에 존재하지 않는 것을 발견 할 것이다.


MySQL의 임시 테이블을 삭제

데이터베이스에 대한 연결을 끊을 때 기본적으로, 임시 테이블이 자동으로 소멸됩니다. 물론, 당신은 또한 수동으로 현재의 MySQL 세션에서 DROP TABLE 명령을 사용하여 임시 테이블을 삭제할 수 있습니다.

다음은 수동으로 임시 테이블 예를 삭제하는 것입니다 :

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)
mysql> DROP TABLE SalesSummary;
mysql>  SELECT * FROM SalesSummary;
ERROR 1146: Table 'w3big.SalesSummary' doesn't exist