首页  >  文章  >  数据库  >  如何使用插入后触发器正确更新 MySQL 中的表列?

如何使用插入后触发器正确更新 MySQL 中的表列?

Barbara Streisand
Barbara Streisand原创
2024-11-26 07:23:11901浏览

How to Correctly Update a Table Column in MySQL Using an After Insert Trigger?

插入触发器后更新另一个表的列

此查询尝试在 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn