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)
あなたはSHOWテーブルがデータテーブルのリストを表示するコマンドを使用するときは、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