过期日期为TIMESTAMP列的默认值

Vic*_*tor 5 mysql database timestamp creation

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

我已经尝试过了:

ALTER TABLE `table` 
ADD COLUMN `expire` TIMESTAMP NOT NULL DEFAULT TIMESTAMPADD(HOUR, 5, CURRENT_TIMESTAMP);
Run Code Online (Sandbox Code Playgroud)

但没有工作..

Ike*_*ker 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 ;
Run Code Online (Sandbox Code Playgroud)