ホームページ  >  記事  >  データベース  >  After Insert トリガーを使用して MySQL のテーブル列を正しく更新する方法

After Insert トリガーを使用して MySQL のテーブル列を正しく更新する方法

Barbara Streisand
Barbara Streisandオリジナル
2024-11-26 07:23:11902ブラウズ

How to Correctly Update a Table Column in MySQL Using an After Insert Trigger?

MySQL After Insert Trigger to Update Another Table's Column

このクエリは、BookingRequest テーブルの列を更新する MySQL でのトリガーの作成を試みますOccupiedRoom テーブルに行が挿入されたとき。ただし、提供されたトリガーは意図したとおりに機能しません。

この問題を解決するには、トリガーの修正バージョンを次に示します:

DELIMITER $$
CREATE TRIGGER occupy_trig
AFTERそれぞれの OccupiedRoom に挿入ROW
開始

   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;

$$ 区切り文字 ; **トリガーの詳細:** * トリガーは `AFTER INSERT` 句を使用して定義されます。これは、行が `OccupiedRoom` テーブルに挿入された後に実行されることを意味します。 * トリガーは「FOR EACH ROW」句を使用して、挿入された各行を個別に処理します。 * トリガー本体の内部: * ブール変数 `@id_exists` を宣言して、挿入された `OccupiedRoom` 行の `idRequest` が `BookingRequest` テーブルに存在するかどうかを確認します。 * `BookingRequest` テーブルをチェックして、新しく挿入された `OccupiedRoom` 行の `idRequest` が存在するかどうかを判断します。存在する場合、`@id_exists` を `1` に設定します。 * `@id_exists` が `1` の場合、`idRequest` が `OccupiedRoom` テーブルの新しい `idRequest` と一致する場合、`BookingRequest` テーブルの `status` 列を '1' に更新します。

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

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