PR

【MySQL】一時テーブルを作成し活用する

MySQL
記事内に広告が含まれています。

セッションを繋いでいる間だけ存在する一時テーブルを作成する方法を記載します。
セッションが切れるとテーブル情報が削除されるため、後に残しておきたくないテーブルを作成しておくのに便利です。

環境

  • 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に関する記事を記載しておりますので、良ければご覧ください。

コメント

タイトルとURLをコピーしました