触发更新另一个表的列
在您的数据库中,您有三个表:BookingRequest、status 和 OccupiedRoom。您希望创建一个触发器,只要将具有相同 ID 的请求添加到 OccupiedRoom 表中,该触发器就会将 BookingRequest 表中的状态列更改为“1”。
您之前尝试过以下触发器:
create trigger occupy_trig after insert on OccupiedRoom for each row begin if BookingRequest.idRequest= NEW.idRequest then update BookingRequest set status = '1'; where idRequest = NEW.idRequest; end if; END;
然而,没有成功。这是一个应该可以工作的修改版本:
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 ;
说明:
以上是如何创建触发器以基于 INSERT 操作更新另一个表中的列?的详细内容。更多信息请关注PHP中文网其他相关文章!