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中文網其他相關文章!