MySQL 最新のマニュアル ...login
MySQL 最新のマニュアル チュートリアル
著者:php.cn  更新時間:2022-04-15 14:04:12

MySQL一時テーブル


MySQL 一時テーブル

MySQL 一時テーブルは、一時データを保存する必要がある場合に非常に便利です。一時テーブルは、現在の接続でのみ表示されます。接続が閉じられると、Mysql は自動的にテーブルを削除し、すべての領域を解放します。

一時テーブルは MySQL バージョン 3.23 で追加されました。MySQL バージョンが 3.23 より前の場合は、MySQL の一時テーブルを使用できません。ただし、現在では、このような低バージョンの MySQL データベース サービスを使用することは一般にまれです。

MySQL 一時テーブルは現在の接続でのみ表示されます。PHP スクリプトを使用して MySQL 一時テーブルを作成する場合、一時テーブルは PHP スクリプトが実行されるたびに自動的に破棄されます。

別の 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)
SHOW TABLES コマンドを使用してデータ テーブル リストを表示する場合、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 'php.SalesSummary' doesn't exist

推奨される関連ビデオチュートリアル: Mysql table

PHP中国語ウェブサイト