mysql - 仅当列值为今天的日期时才需要触发触发器

标签 mysql sql database date triggers

当column_value与特定场景匹配时,我想在数据库中应用触发器,例如

goal表中,有目标、状态、start_Date、end_Date等字段

现在我想更改目标的状态。当用户输入他/她的目标时,他/她填写了 end_Date。现在我想在 end_Date 与当前日期匹配时更改目标的状态

示例:-

+------+--------+--------------+-------------+
| GOAL | STATUS | START_DATE   | END_DATE    |
+------+--------+--------------+-------------+
|    1 | Active | 2017-07-03   | 2017-07-09  |
+------+--------+------------+---------------+

当 END_DATE 等于当前日期时,我想将状态“事件”更改为“已完成”

我希望我能够理解我的问题。

提前致谢!

最佳答案

Oracle 表级触发器的主体如下所示...

BEGIN
  IF INSERTING and (:new.end_date = sysdate) THEN
    :NEW.goal_status := desired_value;
  ELSIF UPDATING AND (:new.end_date = sysdate) then
    :NEW.goal_status := desired_value;
  END IF;
End;

关于mysql - 仅当列值为今天的日期时才需要触发触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44943822/

相关文章:

sql - Postgresql:如何从sql结果中选择两次

sql - 子查询中的引用别名

Java PreparedStatement 和 ON DUPLICATE KEY UPDATE : how do I know whether row was inserted or updated?

mysql - MySQL Workbench 中的连接到底是什么?

c# - Entity Framework Code-First 启动时太慢

php - 在 AJAX 中使用一次后重新绑定(bind)点击事件

sql - 亚马逊 Redshift 中的上次更新查询计数

mysql - Django 模型中存储商业商店交易中购买的元素的有效方法

php - MySQL修复两个表中的自动增量差距

mysql - 首先 Group By 按顺序检索所有行?