MySQL は一般的に使用されているリレーショナル データベース管理システムであり、その強力な機能と柔軟な使用法により、多くの開発者や企業にとって最初の選択肢となっています。 MySQL では、トリガーとイベントは、データ監視、データ整合性保護、データ同期などの機能を実装できる 2 つの重要な概念です。この記事では、MySQL でのトリガーとイベントの使用方法を紹介します。
1. トリガー
トリガーは、テーブルに関連付けられ、事前定義されたアクションを自動的にトリガーする MySQL の特別なストアド プロシージャです。テーブルを追加、削除、または変更するとき。トリガーは、BEFORE トリガー、AFTER トリガー、INSTEAD OF トリガーの 3 つのカテゴリに分類されます。 BEFORE トリガーは操作の実行前に起動し、AFTER トリガーは操作の実行後に起動し、INSTEAD OF トリガーは操作の実行前に元の操作を置き換えます。トリガーを使用すると、データ変更時に、関連テーブルの更新、ログの記録、通知の送信などの一部の操作を自動的に完了できます。
トリガーを作成するには、CREATE TRIGGER ステートメントを使用する必要があります。構文は次のとおりです。
CREATE TRIGGER トリガー名
BEFORE/AFTER/INSTEAD OF 挿入/更新/削除
ON テーブル名
FOR EACH ROW
trigger_body
このうち、trigger_name はトリガーの名前、insert/update/delete はトリガー時刻、table_name はトリガーが属するテーブルの名前、trigger_body はトリガーの特定のロジックです。 trigger_body では、NEW を使用して新しく挿入された値を参照し、OLD を使用して古い値を参照できます。
次は例です。新しいレコードがテーブル Student に挿入されると、ログ レコードがテーブル ログに自動的に挿入されます。
CREATE TABLE Student ( id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(100),
age INT
);
id INT主キー AUTO_INCREMENT ,
アクション VARCHAR(100),
タイムスタンプ TIMESTAMP
);
CREATE TRIGGER insert_log AFTER INSERT
ON 学生 FOR EACH ROW
BEGIN
INSERT INTO log (action, timestamp) VALUES ('insert', NOW());
END //
ON SCHEDULE スケジュール
[DO sql_statements]
[COMPLETION NOT PRESERVE]
[ENABLE/DISABLE]
ON SCHEDULE EVERY 1 DAY
STARTS '2022-01-01 00:00:00'
DO
BEGIN
-- 执行备份操作
以上がMySQL でトリガーとイベントを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。