English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

MySQL一時テーブル

MySql チュートリアル

MySQL一時テーブルは、私たちが一時的なデータを保存する必要があるときに非常に役立ちます。一時テーブルは現在の接続でのみ可见で、接続を閉じると、MySQLは自動的にテーブルを削除し、すべてのスペースを解放します。 3.23MySQL一時テーブルはMySQL 3.23.バージョンに追加されましたが、あなたのMySQLバージョンが

バージョンではMySQLの一時テーブルを使用することができません。ただし、現在ではほとんどのMySQLデータベースサービスがこのような低いバージョンを使用していないため、これは稀です。

MySQL一時テーブルは現在の接続でのみ可见です。PHPスクリプトを使用してMySQL一時テーブルを作成すると、PHPスクリプトの実行が完了すると一時テーブルも自動的に破棄されます。

他のMySQLクライアントプログラムを使用してMySQLデータベースサーバーに接続して一時テーブルを作成した場合、クライアントプログラムを閉じると一時テーブルが破棄されます。もちろん、手動で破棄することもできます。

オンラインサンプル

mysql> CREATE TEMPORARY TABLE SalesSummary (
    -> product_name VARCHAR(50) NOT NULL
    -> , total_sales DECIMAL(12,2NOT NULL DEFAULT 0.00
    -> , avg_unit_price DECIMAL(7,2NOT NULL DEFAULT 0.00
    ->total_units_soldINTUNSIGNEDNOTNULLDEFAULT0
);
クエリOK,影響を受けた行0(0.00秒)
mysql>INSERT INTO SalesSummary
    ->(product_name, total_sales, avg_unit_price, total_units_sold)
    ->VALUES
    ->('cucumber', 100.25, 90, 2);
mysql>SELECT * FROMSalesSummary;
+--------------+-------------+----------------+------------------+
|product_name|total_sales|avg_unit_price|total_units_sold|
+--------------+-------------+----------------+------------------+
|cucumber                 |      100.25 |          90.00|                2 |
+--------------+-------------+----------------+------------------+
1 行インセット(0.00秒)

以下はMySQL一時テーブルを使用する簡単な例です。以下のSQLコードはPHPスクリプトのmysql_query()関数に適用できます。 SHOW TABLESコマンドを使用してデータテーブルリストを表示すると、SalesSummaryテーブルを見つけることができません。

現在のMySQLセッションを退出して、 SELECTコマンドを使用して以前に作成した一時テーブルのデータを読み取ると、データベースにそのテーブルが存在しないことに気づくでしょう。なぜなら、退出時にはその一時テーブルが既に破棄されているからです。

削除MySQL一時テーブル

デフォルトでは、データベースとの接続を切ると、一時テーブルは自動的に破棄されます。もちろん、現在のMySQLセッションで DROP TABLE コマンドを使用して手動で一時テーブルを削除します。

以下は手動で一時テーブルを削除する例です:

mysql> CREATE TEMPORARY TABLE SalesSummary (
    -> product_name VARCHAR(50) NOT NULL
    -> , total_sales DECIMAL(12,2NOT NULL DEFAULT 0.00
    -> , avg_unit_price DECIMAL(7,2NOT NULL DEFAULT 0.00
    ->total_units_soldINTUNSIGNEDNOTNULLDEFAULT0
);
クエリOK,影響を受けた行0(0.00秒)
mysql>INSERT INTO SalesSummary
    ->(product_name, total_sales, avg_unit_price, total_units_sold)
    ->VALUES
    ->('cucumber', 100.25, 90, 2);
mysql>SELECT * FROMSalesSummary;
+--------------+-------------+----------------+------------------+
|product_name|total_sales|avg_unit_price|total_units_sold|
+--------------+-------------+----------------+------------------+
|cucumber                 |      100.25 |          90.00|                2 |
+--------------+-------------+----------------+------------------+
1 行インセット(0.00秒)
mysql> DROP TABLE SalesSummary;
mysql>SELECT * FROMSalesSummary;
エラー 1146:テーブル'w3codebox.SalesSummary'は存在しません