MySQL的触发器:检查多少时间,直到时间戳列值过期
问题描述:
在我的表我有一列名为timstamp_col
,我有触发BEFORE UPDATE在表上。MySQL的触发器:检查多少时间,直到时间戳列值过期
基本上我想是(在触发器)1小时,如果有1个多小时左延长timstamp_col
直到timstamp_col值期满时,或通过30分钟如果存在较少然后在1小时左直到timstamp_col期满
IM不知道我怎么能检查还剩多少时间(以分钟为最好),直到timestampl值到期......我想是这样的
认罪忽略语法错误
DELIMITER $$
CREATE TRIGGER update_timestamp BEFORE UPDATE
ON table
FOR EACH ROW BEGIN
IF OLD.timstamp_col - NOW() > 60 THEN
SET NEW.timestamp_col = NOW() + INTERVAL 1 HOUR
END IF ;
IF OLD.timstamp_col - NOW() < 60 THEN
SET NEW.timestamp_col = NOW() + INTERVAL 30 MINUTE;
END IF ;
END$$
DELIMITER ;
答
你正在寻找UNIX_TIMESTAMP,它计算在几秒钟的时间
IF UNIX_TIMESTAMP(OLD.timstamp_col) - UNIX_TIMESTAMP() < 3600 THEN
SET NEW.timestamp_col = NOW() + INTERVAL 30 MINUTE;
END IF ;
请提供此或http://sqlfiddle.com/这样做的(最小)表定义。触发器看起来是正确的,那么为什么不修复语法错误并尝试呢? – Myonara