MYSQL触发器输出的数学公式计算不正确

MYSQL触发器输出的数学公式计算不正确,mysql,triggers,Mysql,Triggers,我在网站上找不到任何专门解决这个问题的东西,所以我决定发布一个问题以寻求帮助 我正在尝试对数据库中的表运行“更新前”触发器。触发器设置为在运行cron作业查询以评估用户数据后执行。如果达到了数据目标,那么在更新之前,触发器将启动,通过两个简单的数学公式操作其他列 sqlQuery(通过cron作业) 更新表1记录设置创建日期=IF(过期日期0,CURDATE(),'error'),创建日期) 更新前触发器(通过phpMyAdmin cPanel创建) 现在我确信有更好的编码方法来完成这项任务,但

我在网站上找不到任何专门解决这个问题的东西,所以我决定发布一个问题以寻求帮助

我正在尝试对数据库中的表运行“更新前”触发器。触发器设置为在运行cron作业查询以评估用户数据后执行。如果达到了数据目标,那么在更新之前,触发器将启动,通过两个简单的数学公式操作其他列

sqlQuery(通过cron作业)

更新
表1
记录
设置
创建日期
=IF(
过期日期
0,CURDATE(),'error'),
创建日期

更新前触发器(通过phpMyAdmin cPanel创建)

现在我确信有更好的编码方法来完成这项任务,但在触发器第5行的数学公式出现之前,一切似乎都在运行。公式不从OLD.postCOUNT中减去“1”,而是不断减去“2”。我不明白为什么会发生这种情况,这个公式似乎很简单。我甚至试过公式中的其他数字,但答案永远都不正确

如有任何建议或见解,将不胜感激


提前谢谢

您是否尝试在第5行前后打印NEW.postCOUNT和OLD.postCOUNT?输出是什么?只是想澄清一下你在步骤3中做了什么?谢谢你的建议TravisJ…我把第5行移到了第4行上面…但计算仍然不正确。事实上,这次不是减去“2”,而是减去了“3”。第3步……我想说的是这个值是真的。事实上,我不确定是否需要这条线路
1. BEGIN
2.    IF NEW.date_created != OLD.date_created THEN
3.         SET NEW.date_created=New.date_created;
4.         SET NEW.expiration_date = NEW.date_created + 2;
5.         SET NEW.postCOUNT = OLD.postCOUNT-1;
6.     END IF;
7. END