INSERT 後に別のテーブルにデータを挿入する MySQL トリガーを作成する方法

Susan Sarandon
リリース: 2024-11-26 20:02:10
オリジナル
523 人が閲覧しました

How to Create a MySQL Trigger to Insert Data into Another Table After an INSERT?

別のテーブルにデータを挿入するための MySQL トリガーのプログラミング

MySQL トリガーを使用すると、データベース テーブルで特定のイベントが発生したときに事前定義されたアクションを実行できます。この場合の目的は、特定のテーブルに行が挿入されたときに別のテーブルに行を挿入するトリガーを作成することです。

最後に挿入された行の ID を取得する方法

最後に挿入された行の ID を取得するには、トリガー内で LAST_INSERT_ID() 関数を使用する必要があります。この関数は、最後に挿入された行の ID を返します。

INSERT ステートメントで使用するために最後に挿入された行からのデータを保存する

最後に挿入された行からのデータを適切に保存するにはコメント行をトリガー内のローカル変数に保存できます。たとえば、ユーザー ID 列の名前が user_id で、コメント テキスト列の名前が comment_text である場合、次の構文を使用できます:

DECLARE user_id INTEGER;
DECLARE comment_text VARCHAR(255);

SET user_id = NEW.user_id;
SET comment_text = NEW.comment_text;
ログイン後にコピー

ストアド プロシージャの使用

トリガーは、特定のイベントに応じてアクションを自動的に実行する場合に便利ですが、機能が制限されており、複雑な操作には適さない場合があります。このような場合は、トリガーとストアド プロシージャを組み合わせて使用​​することをお勧めします。

トリガーの構造

トリガーの基本構造は次のようになります。

DELIMITER $$

CREATE TRIGGER comments_after_ins_trig AFTER INSERT ON comments
FOR EACH ROW
BEGIN
  -- Grab the ID of the last inserted row
  SET @last_inserted_id = LAST_INSERT_ID();

  -- Store data from the last inserted row into local variables
  SET @user_id = NEW.user_id;
  SET @comment_text = NEW.comment_text;

  -- Perform the INSERT into the activities table
  INSERT INTO activities (user_id, comment_text) VALUES (@user_id, @comment_text);
END;
$$

DELIMITER ;
ログイン後にコピー

以上がINSERT 後に別のテーブルにデータを挿入する MySQL トリガーを作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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