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