MySQL トリガーの基本概念と使用法を理解する
MySQL トリガーは、一連のアクションを定義する特殊なタイプのストアド プロシージャです。アクションは、次の場合に自動的にアクティブ化され、実行されます。トリガー条件が満たされています。トリガーを通じて、挿入、更新、削除、その他のアクションが発生したときに対応するロジックを実行するなど、データベース テーブルに対する自動操作を実現できます。
MySQL トリガーの基本的な構文構造は次のとおりです:
CREATE TRIGGER トリガー名 {前 | 後} {挿入 | 更新 | 削除} ON テーブル名 行ごとに 始める -- トリガーにより実行されるロジックコード END;
上記の構文構造では、トリガーの名前は trigger_name
で指定され、トリガーの実行時間は BEFORE
または ## で指定されます。 #AFTER キーワードが指定されている トリガーされるアクションは、
INSERT、
UPDATE、または
DELETE キーワードによって指定されている トリガーが配置されているテーブルが指定されている
table_name による。
FOR EACH ROW は、各行が 1 回トリガーされることを意味し、
BEGIN と
END の間のロジック コードがロジック コードです。トリガーによって実行されます。
users と
logs という 2 つのテーブルがあると仮定します。ユーザーが新しいデータを
users テーブルに挿入するときは、新しいデータを
logs# に挿入する必要があります。 ## table 関連するログ レコードをファイルに自動的に挿入します。これは、次のトリガーで実現できます: CREATE TRIGGER after_insert_user
挿入後
ONユーザー
行ごとに
始める
INSERT INTO ログ(user_id、アクション、タイムスタンプ)
VALUES(NEW.id, 'ユーザーの挿入', NOW());
END;
テーブルがあるとします。ある製品の情報が更新されると、を記録する必要があります。以下は変更前と変更後の情報です。これは、次のトリガーで実現できます: CREATE TRIGGER after_update_product
アップデート後
オン製品
行ごとに
始める
INSERT INTO product_logs(product_id、old_name、new_name、old_price、new_price、タイムスタンプ)
VALUES(NEW.id, OLD.name, NEW.name, OLD.price, NEW.price, NOW());
END;
と order_details
という 2 つのテーブルがあると仮定します。注文の場合、対応する注文の詳細を段階的に削除する必要があります。これは、次のトリガーで実現できます: CREATE TRIGGER after_delete_order
削除後
オンの注文
行ごとに
始める
DELETE FROM order_details WHERE order_id = OLD.id;
END;
上記の例を通じて、MySQL トリガーの役割と使用法を確認できます。トリガーは、データベース操作中に自動化されたビジネス ロジックを実装し、データベースの信頼性と効率を向上させるのに役立ちます。データベースを設計する場合、トリガーを合理的に使用すると、コード ロジックが簡素化され、反復操作が減り、システムの保守性と拡張性が向上します。
以上がMySQL トリガーの基本概念と使用法を理解するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。