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中文网其他相关文章!