ホームページ > データベース > mysql チュートリアル > MySQL トリガーの基本概念と使用法を理解する

MySQL トリガーの基本概念と使用法を理解する

WBOY
リリース: 2024-03-15 17:09:03
オリジナル
985 人が閲覧しました

MySQL トリガーの基本概念と使用法を理解する

MySQL トリガーの基本概念と使用法を理解する

MySQL トリガーは、一連のアクションを定義する特殊なタイプのストアド プロシージャです。アクションは、次の場合に自動的にアクティブ化され、実行されます。トリガー条件が満たされています。トリガーを通じて、挿入、更新、削除、その他のアクションが発生したときに対応するロジックを実行するなど、データベース テーブルに対する自動操作を実現できます。

MySQL トリガーの基本的な構文構造は次のとおりです:

CREATE TRIGGER トリガー名
{前 | 後} {挿入 | 更新 | 削除}
ON テーブル名
行ごとに
始める
-- トリガーにより実行されるロジックコード
END;
ログイン後にコピー

上記の構文構造では、トリガーの名前は trigger_name で指定され、トリガーの実行時間は BEFORE または ## で指定されます。 #AFTER キーワードが指定されている トリガーされるアクションは、INSERTUPDATE、または DELETE キーワードによって指定されている トリガーが配置されているテーブルが指定されているtable_name による。FOR EACH ROW は、各行が 1 回トリガーされることを意味し、BEGINEND の間のロジック コードがロジック コードです。トリガーによって実行されます。

以下では、いくつかの具体的なコード例を使用して MySQL トリガーの使用法を説明します。

    データの挿入時に別の関連テーブルのデータを自動的に更新します

userslogs という 2 つのテーブルがあると仮定します。ユーザーが新しいデータを users テーブルに挿入するときは、新しいデータを logs# に挿入する必要があります。 ## table 関連するログ レコードをファイルに自動的に挿入します。これは、次のトリガーで実現できます: CREATE TRIGGER after_insert_user 挿入後 ONユーザー 行ごとに 始める INSERT INTO ログ(user_id、アクション、タイムスタンプ) VALUES(NEW.id, 'ユーザーの挿入', NOW()); END;

ログイン後にコピー
ログイン後にコピー
データ更新時に変更ログを記録する
products

テーブルがあるとします。ある製品の情報が更新されると、を記録する必要があります。以下は変更前と変更後の情報です。これは、次のトリガーで実現できます: 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;

ログイン後にコピー
ログイン後にコピー
データ削除時にカスケード操作を実行します
  1. 削除時に
orders

order_details という 2 つのテーブルがあると仮定します。注文の場合、対応する注文の詳細を段階的に削除する必要があります。これは、次のトリガーで実現できます: CREATE TRIGGER after_delete_order 削除後 オンの注文 行ごとに 始める DELETE FROM order_details WHERE order_id = OLD.id; END;

上記の例を通じて、MySQL トリガーの役割と使用法を確認できます。トリガーは、データベース操作中に自動化されたビジネス ロジックを実装し、データベースの信頼性と効率を向上させるのに役立ちます。データベースを設計する場合、トリガーを合理的に使用すると、コード ロジックが簡素化され、反復操作が減り、システムの保守性と拡張性が向上します。 
ログイン後にコピー

以上がMySQL トリガーの基本概念と使用法を理解するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート