2012-03-15 62 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 ;