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