【MySQL】指定した時間後にテーブルを自動削除する方法(EVENT活用)
MySQLで指定時間後にテーブルを自動的に削除するには?
MySQLでは、EVENT(イベント)機能を利用することで、指定した時間が経過した後にテーブルを自動的に削除できます。手動でDROP文を実行する必要がないため、一時的な作業用テーブルや期限付きデータの管理に非常に便利です。
基本構文
x時間後にテーブルを削除するイベントを作成する場合、構文は以下の通りです。
CREATE EVENT イベント名 ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL x HOUR DO DROP TABLE IF EXISTS テーブル名;
サンプルテーブルの作成
まず、動作確認用として以下のようなテーブルを作成します。
mysql> create table DemoTable
(
StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
StudentFirstName varchar(20),
StudentLastName varchar(20),
StudentAge int
);
Query OK, 0 rows affected (0.52 sec)
2時間後にテーブルを削除するイベントの実装例
続いて、上記の構文をもとに「2時間後にテーブルを削除する」イベントを実際に作成してみましょう。
mysql> CREATE EVENT drop_table_event_after2HoursDemo ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 2 HOUR DO DROP TABLE IF EXISTS DemoTable; Query OK, 0 rows affected (0.17 sec)
このイベントによって、「DemoTable」は作成から2時間後に自動的に削除されます。
補足:イベントスケジューラの有効化を確認しよう
イベントを正しく動作させるには、MySQLのイベントスケジューラが有効になっている必要があります。以下のコマンドで現在の設定を確認できます。
mysql> SHOW VARIABLES LIKE 'event_scheduler';
結果がOFFになっている場合は、次のコマンドで有効化してください。
mysql> SET GLOBAL event_scheduler = ON;
これで準備完了です。あとはイベントが指定時刻に自動実行され、テーブルが確実に削除されます。
-
MySQLでインデックス付きのテーブルを作成する方法を徹底解説
MySQLでは、テーブル作成後にCREATE INDEX文を使うことで、特定のカラムに対してインデックスを追加できます。検索速度の向上やデータ整合性の確保において、インデックスは非常に重要な役割を果たします。この記事では、基本的な構文から実際の実行例まで、順を追ってわかりやすく解説します。インデックス付きテーブルを作成する基本構文まずテーブルを作成し、その後CREATE INDEX文でインデックスを追加します。基本の構文は以下のとおりです。create table yourTableName ( yourColumnName1 dataType, yourColumnName2 dataTyp
-
MySQLストアドプロシージャでSHOW CREATE TABLEを実行する方法
MySQLストアドプロシージャでSHOW CREATE TABLEを実行する方法 ストアドプロシージャの中でSHOW CREATE TABLEを実行したい場合は、動的SQL(プリペアドステートメント)を利用します。SHOW系のコマンドはプロシージャ内に直接記述できないため、SQL文を文字列として組み立てて実行するのがポイントです。 まずはサンプル用のテーブルを作成しましょう。 mysql> create table DemoTable2011 -> ( -> StudentId int NOT NULL AUTO_INCREMENT, -> St