ホームページ >データベース >mysql チュートリアル >MySQLのテンポラリテーブルの機能とサンプルコードを詳しく解説

MySQLのテンポラリテーブルの機能とサンプルコードを詳しく解説

零下一度
零下一度オリジナル
2017-05-16 10:46:232198ブラウズ

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 'TUTORIALS.SalesSummary' doesn't exist

【関連する推奨事項】

1. 特別な推奨事項: 「php Programmer Toolbox」V0.1バージョンのダウンロード

2.無料の mysql オンライン ビデオ チュートリアル

3. データベース設計に関する事項

以上がMySQLのテンポラリテーブルの機能とサンプルコードを詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。