mysql - 触发器 - 如何在更新另一列时更改另一列 - MySQL
问题描述
TIME
我得到了一个用例,如果其他相同类型的字段发生变化,用户需要更新某个字段。
我得到了两列
horario_arribo (时间)
horario_salida (时间)
现在,我需要做的是以下
制作一个触发器,因此当我更改例如horario_arribo时,horario_salida与horario_arribo减去 1 小时的时间相同,如果我更新horario_salida,则使horario_arribo加上 1 小时。
我一直在想怎么做,首先检查要更新的值是否为horario_salida,然后我只需将 1 小时添加到horario_arribo,或者如果我正在更新horario_arribo,与horario_salida相同,但减去 1 小时。
DELIMITER //
CREATE TRIGGER modificar_horarioruta AFTER
UPDATE ON ruta
FOR EACH ROW
BEGIN
IF(new.horario_salida) THEN
SET AddTime(old.horario_arribo, '00:60:00')
ELSE
SET AddTime(old.horario_salida, Here I dont know how to minus 1 hour to that)
END IF;
END //
DELIMITER ;
这是我拥有的数据
所以,简而言之,如果我更新horario_salida,horario_arribo需要提前 1 小时,如果我更新horario_arribo,horario_salida需要少 1 小时。
谢谢
解决方案
国际大学联盟:
DELIMITER //
CREATE TRIGGER modificar_horarioruta AFTER
UPDATE ON ruta
FOR EACH ROW
BEGIN
IF (NEW.horario_salida) THEN
SET NEW.horario_arribo = OLD.horario_arribo + 1;
ELSE
SET NEW.horario_salida = OLD.horario_salida - 1;
END IF;
END //
DELIMITER ;
让我知道这是否不是您需要的。
推荐阅读
- android - 运动编辑器在 Android Studio 4.0.1 中不起作用
- python - Python Flask 应用程序中的“无法在静态 TLS 块中分配内存”
- git - 将克隆的 TFS 存储库推送到具有历史记录的私有存储库
- objective-c - 在 Metal 中更改混合模式
- css - 如何使用 CSS 通过显示他们的 favicon 来突出显示指向特定网站的链接?
- php - 在 docker 中运行 symfony 4.4 Web 服务器时出现“找不到页面”错误
- r - 改变 rnoaa 包的输出?
- react-native - 在 setInterval 期间,React Native 可触摸不透明度在平面列表中失败
- git - Google Compute Engine VM,添加的负载均衡器现在不能 git pull
- python - 无法打开 Jupyter Notebook - Distutils 错误