別のテーブルにデータを挿入するための 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 サイトの他の関連記事を参照してください。