mysql - 在 Mysql 中触发执行时更新数据?
问题描述
如果数据更新,我希望 WaterRateMeterStart 和 WaterRateMeterEnd 按顺序具有相同的值。
这是我的桌子
这是我的表结构
这是我的代码,我不知道如何发生错误。
DELIMITER $$
CREATE TRIGGER after_update_rates_water_again AFTER UPDATE ON waterrates FOR EACH ROW
BEGIN
IF
new.WaterRateMeterStart <> old.WaterRateMeterStart THEN
UPDATE waterrates
SET WaterRateMeterEnd = new.WaterRateMeterStart
WHERE
WaterRateId = ( new.WaterRateId - 1 );
ELSEIF new.WaterRateMeterEnd <> old.WaterRateMeterEnd THEN
UPDATE waterrates
SET WaterRateMeterStart = new.WaterRateMeterEnd
WHERE
WaterRateId = ( new.WaterRateId + 1 );
END IF;
END $$
DELIMITER ;
如果我更新数据会出错
UPDATE `waterrates` SET `WaterRateMeterStart` = '9' WHERE `waterrates`.`WaterRateId` = 2
解决方案
推荐阅读
- java - 将 java.time.LocalDate 与 postgres 日期进行比较的问题
- php - php用参数调用python脚本但没有输出
- c# - 在 UWP 中运行时重新生成 DataGrid 列
- angular - Material Angular 6中的单行水平芯片列表
- java - Spring JPA:外部事务能否回滚成功的内部事务
- awk - 如何打印此 Awk 命令以便输出到新文件?
- javascript - 获取用户输入并提醒图像
- arrays - 为什么 Swift 不将元素作为字典的值附加到数组中?
- java - 在未执行 thread.sleep 之前调用的方法
- glsl - 与线的距离——Shadertoy