2012-03-15 63 views
4

是否有任何方法将列的默认值设置为过期日期(从CURRENT_TIMESTAMP开始的几个小时)?作为TIMESTAMP列的默认值的过期日期

我已经尝试:

ALTER TABLE `table` 
ADD COLUMN `expire` TIMESTAMP NOT NULL DEFAULT TIMESTAMPADD(HOUR, 5, CURRENT_TIMESTAMP); 

但没有工作..

+2

'TIMESTAMP'和'DATETIME'列可以默认为'CURRENT_TIMESTAMP',而不是通过函数计算出的值。最好的办法就是像艾克一样。 – 2012-03-15 14:34:37

回答

6

无法实现像在表定义一个复杂的默认值。

你可以,如果你想有一个触发做到这一点:

DELIMITER $$ 

DROP TRIGGER IF EXISTS tr_b_ins_table $$ 

CREATE TRIGGER tr_b_ins_table BEFORE INSERT ON table FOR EACH ROW BEGIN 
    SET NEW.expire = NOW() + INTERVAL 5 HOUR; 
END $$ 

DELIMITER ;