ホームページ > データベース > mysql チュートリアル > 挿入後に別のテーブルの列を更新する MySQL トリガーを作成する方法

挿入後に別のテーブルの列を更新する MySQL トリガーを作成する方法

Patricia Arquette
リリース: 2024-11-24 04:12:11
オリジナル
300 人が閲覧しました

How to Create a MySQL Trigger to Update a Different Table's Column After an Insert?

挿入後に別のテーブルの列を更新する MySQL トリガー

この質問には、BookingRequest テーブルのステータス列を更新する MySQL トリガーの作成が含まれます。 OccupiedRoom テーブルへの行の挿入時。

最初のトリガー コードが試行されましたBookingRequest.idRequest と NEW.idRequest の比較を使用して BookingRequest テーブルを直接更新します。しかし、このアプローチは失敗しました。

この問題を解決して機能的なトリガーを作成するには、以下のコードを使用する必要があります。

DELIMITER $$
CREATE TRIGGER occupy_trig
AFTER INSERT ON `OccupiedRoom` FOR EACH ROW
begin
       DECLARE id_exists Boolean;
       -- Check BookingRequest table
       SELECT 1
       INTO @id_exists
       FROM BookingRequest
       WHERE BookingRequest.idRequest= NEW.idRequest;

       IF @id_exists = 1
       THEN
           UPDATE BookingRequest
           SET status = '1'
           WHERE idRequest = NEW.idRequest;
        END IF;
END;
$$
DELIMITER ;
ログイン後にコピー

このトリガーは変数 @id_exists を利用して、 OccupiedRoom テーブルからの idRequest は BookingRequest テーブルに存在します。存在する場合、BookingRequest テーブルのステータス列が「1」に設定されます。

トリガー内でプレースホルダー NEW を使用することにより、挿入された行の idRequest と、挿入された行の対応する idRequest の間で比較が正しく実行されるようになりました。 BookingRequest テーブル。

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

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