如何建立 MySQL 觸發器以在插入後更新不同表的列?

Patricia Arquette
發布: 2024-11-24 04:12:11
原創
241 人瀏覽過

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

MySQL 觸發器在插入後更新不同表的列

這個問題涉及建立一個MySQL 觸發器,根據BookingRequest 表更新狀態列在OccupiedRoom 表中插入一行時。

初始觸發程式碼嘗試直接更新BookingRequest 表使用 BookingRequest.idRequest 和 NEW.idRequest 之間的比較。然而,這種方法並不成功。

要解決此問題並建立功能觸發器,應使用以下程式碼:

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 之間正確執行比較。預訂請求表。

以上是如何建立 MySQL 觸發器以在插入後更新不同表的列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板