首页 > 数据库 > mysql教程 > 如何创建 MySQL 触发器以在插入后更新不同表的列?

如何创建 MySQL 触发器以在插入后更新不同表的列?

Patricia Arquette
发布: 2024-11-24 04:12:11
原创
301 人浏览过

How to Create a MySQL Trigger to Update a Different Table's Column After an Insert?

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

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板