MariaDB で どのように機能するかを見てみましょう。まず、サーバーに接続する必要があります。例: (独自の接続詳細を使用): 一時テーブルが mariadb -h 127.0.0.1 -u root -p"RootPassword!" --database demo ここで、念のため、標準の (永続的な) テーブルを作成しましょう。手順は次のとおりです。 CREATE TABLE t ( c INT ); このテーブル は、クライアントを終了した後もデータベースに残ります。 t exit 再接続して を使用して既存のテーブルを確認すると、テーブル まだリストされています。 SHOW TABLES; t mariadb -h 127.0.0.1 -u root -p"RootPassword!" --database demo SHOW TABLES; +----------------+ | Tables_in_demo | +----------------+ | t | +----------------+ これらはすべてかなり明白ですが、今度はこのテーブルを再作成して、何か違うことを試してみましょう。 CREATE OR REPLACE TEMPORARY TABLE t ( c INT ); キーワードに注意してください。このテーブルを作成した後、 を実行すると、リストに表示されます。このテーブルにデータを挿入したり、クエリを実行したり、他のテーブルと結合したりできます。現在のセッション中は通常のテーブルのように動作します。ただし、クライアントを終了して再接続し、再度 を実行すると、一時テーブル リストに表示されません。 TEMPORARY SHOW TABLES; SHOW TABLES; t 一時テーブルは、作成されたセッションの期間中のみ存在し、他のセッションでは表示されません。 一時テーブルの使用例 一時テーブルは一時的なデータ操作に非常に便利です。たとえば、データベース内の というテーブルを考えてみましょう。 products CREATE TABLE products ( id INT NOT NULL AUTO_INCREMENT, code VARCHAR(100) NOT NULL, name VARCHAR(250) NOT NULL, description TEXT DEFAULT NULL, PRIMARY KEY (id), UNIQUE KEY code (code) ) の構造を模倣した一時テーブルを作成できます。 products CREATE TEMPORARY TABLE t LIKE products; 次のコマンドを実行すると確認できます。 DESCRIBE t; +-------------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+--------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | code | varchar(100) | NO | UNI | NULL | | | name | varchar(250) | NO | | NULL | | | description | text | YES | | NULL | | +-------------+--------------+------+-----+---------+----------------+ 最初は、 は空です。ただし、 から にデータを転送するとします。コードに数字 0 を含む製品のみを含めると仮定します。 t products t INSERT INTO t SELECT * FROM products WHERE code LIKE '%0%'; このコマンドを実行した後、一時テーブル をクエリすると、次のようになります。 t SELECT * FROM t; +----+--------+------------------+---------------------------------------------------+ | id | code | name | description | +----+--------+------------------+---------------------------------------------------+ | 1 | BG2024 | BugBlaster | Eradicates software bugs with a single scan. | | 3 | FW001 | FireWhale | An oversized, comprehensive firewall solution. | | 4 | CLD404 | CloudNine Finder | Find your way back from cloud outages and errors. | +----+--------+------------------+---------------------------------------------------+ フィルタリングされたデータが表示されます。 結論 一時テーブルは、永続的なデータ ストアに影響を与えずに一時的な処理のためにデータを処理する強力な方法を提供します。一時テーブルは、データを一時的に操作または変換する必要があるシナリオで特に役立ちます。この種のデータ操作には永続テーブルを使用できますが、自動クリーンアップ、名前の競合のリスクの軽減、分離とセキュリティ、およびクエリ パフォーマンスのためのリソース管理が必要な場合には、一時テーブルが役立ちます。