ホームページ >データベース >mysql チュートリアル >挿入操作に基づいて別のテーブルの列を更新するトリガーを作成する方法は?

挿入操作に基づいて別のテーブルの列を更新するトリガーを作成する方法は?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-24 11:17:13927ブラウズ

How to Create a Trigger to Update a Column in Another Table Based on an INSERT Operation?

別のテーブルの列を更新するトリガー

データベースには、3つのテーブルがあります。同じIDを持つリクエストが占有室のテーブルに追加されるたびに、予約リクエストテーブルのステータス列を「1」に変更するトリガーを作成することをお勧めします。 🎜>

ただし、失敗しました。機能するはずの変更されたバージョンです:

create trigger occupy_trig after insert on OccupiedRoom 
for each row
begin
  if BookingRequest.idRequest= NEW.idRequest
   then
       update BookingRequest
       set status = '1';
       where idRequest = NEW.idRequest;

    end if;
END;

説明:
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が導入され、リクエストIDがBookingRequestに存在するかどうかを確認します表。
  • サブクエリは、一致するIDのエントリが予約リクエストテーブルに既に存在するかどうかを判断するために使用されます。 Status = '1'を設定することにより、idRequestは占領室の新しいエントリのIDと一致します。それに応じて潜在的なスキーマまたはフィールド名の違い

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。