如何创建触发器以在 MySQL 中插入和更新后更改状态?

How to create trigger to change status after insert and update in MySQL?

我有一个 table(输入),其中包含一些字段:

我想在这些条件下触发:

例如:

谢谢

您无法使用触发器来满足您的所有要求。

无论如何,您可以做的最好的事情是即时计算 status 或在 WHERE 子句中使用相同的条件(如果您正在获取特定状态的行 [=15] =]

SELECT t.*,
       CASE WHEN date2 IS NULL AND 
                 date1 >= CURDATE() - INTERVAL 1 MONTH THEN 'Unpaid'
            WHEN date2 <= date1 + INTERVAL 1 MONTH THEN 'Paid'
            WHEN date2 IS NULL AND
                 date1 < CURDATE() - INTERVAL 1 MONTH THEN 'Expired' END status
  FROM input_table t

示例输出:

| CHECK_NUMBER | NAME | NOMINAL |             DATE1 |             DATE2 |  STATUS |
|--------------|------|---------|-------------------|-------------------|---------|
|            1 | John |       1 | February, 16 2015 |            (null) |  Unpaid |
|            2 | Jane |       1 | February, 03 2015 | February, 17 2015 |    Paid |
|            3 | Mark |       1 |  January, 16 2015 |            (null) | Expired |

这是一个SQLFiddle演示