MySQLのイベントは、スケジュールに従って実行されるタスクです。これらは、定期的なデータベースメンテナンスを自動化したり、指定された時間に特定のアクションを実行したりするのに役立ちます。イベントは、データ操作やデータ定義ステートメントなどのSQLステートメントを実行できます。
MySQLでイベントをスケジュールするには、 CREATE EVENT
ステートメントを使用できます。イベントを実行するには、イベントスケジューラを有効にする必要があります。次のSQLコマンドを使用して、イベントスケジューラを確認および有効にすることができます。
<code class="sql">SHOW VARIABLES LIKE 'event_scheduler'; SET GLOBAL event_scheduler = ON;</code>
イベントスケジューラが有効になったら、特定の時間または間隔で実行されるイベントを作成できます。イベントをスケジュールするための基本構造には、実行されるイベントの名前、スケジュール、およびSQLステートメントを指定することが含まれます。
MySQLでイベントを作成するための一般的な構文は次のとおりです。
<code class="sql">CREATE EVENT [IF NOT EXISTS] event_name ON SCHEDULE schedule [ON COMPLETION [NOT] PRESERVE] [ENABLE | DISABLE | DISABLE ON SLAVE] [COMMENT 'comment'] DO sql_statement;</code>
ここで、 event_name
はイベントの名前です。 schedule
、イベントをいつ、どのくらいの頻度ON COMPLETION [NOT] PRESERVE
実行する必要があるかを定義しますENABLE | DISABLE | DISABLE ON SLAVE
イベントの初期状態が決定され、 COMMENT
イベントに関するオプションのコメントであり、 sql_statement
イベントが実行するSQLコードです。
schedule
、次のようなさまざまな方法で定義できます。
AT 'YYYY-MM-DD HH:MM:SS'
EVERY interval STARTS 'YYYY-MM-DD HH:MM:SS' ENDS 'YYYY-MM-DD HH:MM:SS'
たとえば、古いレコードをクリーンアップするために毎日午前2時に実行されるイベントを作成するには:
<code class="sql">CREATE EVENT clean_old_records ON SCHEDULE EVERY 1 DAY STARTS '2023-01-01 02:00:00' DO DELETE FROM logs WHERE timestamp </code>
MySQLでスケジュールされたイベントを変更するには、 ALTER EVENT
ステートメントを使用できます。これにより、スケジュール、実行するSQLステートメント、またはイベントのその他のプロパティを変更できます。基本的な構文は次のとおりです。
<code class="sql">ALTER EVENT event_name ON SCHEDULE schedule [ON COMPLETION [NOT] PRESERVE] [RENAME TO new_event_name] [ENABLE | DISABLE | DISABLE ON SLAVE] [COMMENT 'comment'] DO sql_statement;</code>
たとえば、 clean_old_records
イベントのスケジュールを変更して、毎日ではなく2日ごとに実行するには:
<code class="sql">ALTER EVENT clean_old_records ON SCHEDULE EVERY 2 DAY STARTS '2023-01-01 02:00:00';</code>
スケジュールされたイベントを削除するには、 DROP EVENT
ステートメントを使用します。構文は次のとおりです。
<code class="sql">DROP EVENT [IF EXISTS] event_name;</code>
たとえば、 clean_old_records
イベントを削除するには:
<code class="sql">DROP EVENT clean_old_records;</code>
MySQLでイベントを使用する場合、留意すべきいくつかの制限と考慮事項があります。
これらの制限と考慮事項を理解することにより、MySQLでイベントをより効果的に使用してタスクを自動化し、データベースを効率的に維持できます。
以上がMySQLのイベントは何ですか?それらをどのようにスケジュールしますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。