插入觸發器後更新另一個表的列
此查詢嘗試在MySQL 中建立一個觸發器來更新BookingRequest 表中的列當一行插入OccupiedRoom 表。但是,提供的觸發器無法如預期運作。
要解決此問題,這裡是觸發器的更正版本:
DELIMITER $$
CREATE TRIGGER佔領_trig
AFTER插入每個佔用的房間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”,則會將“BookingRequest”表中的“status”欄位更新為“1”,其中“idRequest”與“OccupiedRoom”表中的新“idRequest”相符。
以上是如何使用插入後觸發器正確更新 MySQL 中的表格列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!