是否可以监听更新并更改值?

crcmnpdw  于 2021-06-24  发布在  Mysql
关注(0)|答案(2)|浏览(254)

假设我有一个包含列的mysql表 Status , Timestamp 和其他人。有没有可能 Timestamp 随时更新 Status 是否已更新?

nzk0hqpo

nzk0hqpo1#

你可以使用 AFTER UPDATE ON table 触发器,它将检查状态列值是否已更改。触发器语法和示例
例如

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;
4ioopgfo

4ioopgfo2#

是的,你有三种不同的方法:
1) 显式地将时间戳更新添加到查询中。
2) 在数据库上实现触发器。触发器用于在事件发生时执行操作。使用触发器的唯一缺点是不能保证时间戳与更新发生的时刻相同;因此,用查询更新它会更好。
3) 使用存储过程进行更新,存储过程通过一个数据库调用进行多次更改。
老实说:1是最简单的方法,也是我推荐的方法,因为这也不是触发器的真正目的。

相关问题