【问题标题】:Is it possible to listen to updates and change value?是否可以收听更新并更改值?
【发布时间】:2018-09-22 06:38:03
【问题描述】:

假设我有一个 mysql 表,其中包含 StatusTimestamp 等列。是否可以在更新Status 时更新Timestamp

【问题讨论】:

标签: mysql


【解决方案1】:

是的,您有 3 种不同的方法:

1) 将时间戳更新显式添加到您的查询中。

2) 在您的数据库上实现触发器。触发器用于在事件发生时采取行动。使用触发器的唯一坏处是不能保证时间戳与更新发生的时间相同;因此使用查询更新它的原因更好。

3) 使用存储过程进行更新,通过单个数据库调用进行多项更改。

说实话:1 是最简单的方法,也是我推荐的方法,因为这也不是触发器的真正用途。

【讨论】:

    【解决方案2】:

    您可以使用AFTER UPDATE ON table 触发器,它将检查状态列值是否已更改。 Trigger Syntax and Examples

    例如

    CREATE TRIGGER `your_trigger_name` 
    AFTER INSERT ON `TableName` 
    FOR EACH ROW  
    
    IF NOT NEW.StatusColumnName <=> OLD.StatusColumnName THEN
        UPDATE TableName SET TimeStampColumnName = NOW() WHERE id = OLD.id; 
    END IF;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-17
      • 2016-10-17
      • 2016-09-13
      • 2018-06-29
      • 2011-01-10
      • 2017-07-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多