セッションを繋いでいる間だけ存在する一時テーブルを作成する方法を記載します。
セッションが切れるとテーブル情報が削除されるため、後に残しておきたくないテーブルを作成しておくのに便利です。
環境
- MySQL: 8.0.28
一時テーブルの作成
CREATE TEMPORARY TABLE
を使用して、一時テーブルを作成します。
通常のテーブル作成(CREATE TABLE
文)に、TEMPORARY
を加えているのみです。
CREATE TEMPORARY TABLE temporary_test (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(256)
);
一時テーブルへのinsert
通常のテーブルと同じ文で、insertが可能です。
INSERT INTO temporary_test (name) VALUES
('banana'),
('apple'),
('grape');
selectの結果も同様の文で問題ないことが、以下確認できます。
mysql> select * from temporary_test;
+----+--------+
| id | name |
+----+--------+
| 1 | banana |
| 2 | apple |
| 3 | grape |
+----+--------+
3 rows in set (0.00 sec)
もちろん、一度exitした後に再度接続し直すとテーブル情報は消えています。
mysql> select * from temporary_test;
ERROR 1146 (42S02): Table 'Test.temporary_test' doesn't exist
活用場面
一時的な検証
新しくテーブルを作って試したいことがあり、後で削除したい場面で便利です。
通常のCREATE TABLE
文でも実現はできますが、後でDROP TABLE
文を実行する必要があります。
検証のために作ったテーブルは削除するのを忘れやすいので、CREATE TEMPORARY TABLE
文を使用して削除不要な状態にしておくのが好ましいです。
バッチ処理
バッチ処理でも活躍します。
後で参照する必要はないけど、処理の関係上中間テーブルを作成した方が良い場面があります。
例えば、元々存在する2つのテーブルの内容を1つの中間テーブルにまとめてから処理を実行したい場面などが想定されます。
業務によって想定ケースは様々かと思われますので、適宜ご活用ください。
まとめ
今回は、後で削除したいテーブルを作成するのに便利な一時テーブルの作成方法に関して紹介しました。
一時的な検証の際や、バッチ処理で中間テーブルを使いたい場面などで有用です。
他にもMySQLに関する記事を記載しておりますので、良ければご覧ください。
コメント