过期日期为TIMESTAMP列的默认值

时间:2012-03-15 14:28:18

标签: mysql database timestamp creation

有没有办法将列的默认值设置为过期日期(距离CURRENT_TIMESTAMP几个小时)?

我已经尝试过了:

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

但是没有用..

1 个答案:

答案 0 :(得分: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 ;