mysql - 过期日期作为 TIMESTAMP 列的默认值

标签 mysql database timestamp creation

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

我已经试过了:

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

但是没用..

最佳答案

您不能像表定义中那样实现复杂的默认值。

如果需要,您可以使用触发器来完成:

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 ;

关于mysql - 过期日期作为 TIMESTAMP 列的默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9721804/

相关文章:

database - Grails:处理现有数据库的最佳方法

PHP与MySQL连接方法

java - JPA - 将 @Version 保存为数据类型 long

sql - Oracle 记录历史使用截至时间戳在一个范围内

mysql - 计算两次之间的分钟数并将其除以记录数

php - 计算 5 天移动平均线 - 如果日期之间存在差距,则将值设置为 0。

php - 将文件保存到 xampp htdocs 目录时权限被拒绝

mysql - 无法在nodejs中使用npm安装mysql

mysql - 通过 BASH 脚本更新 MYSQL 表给出语法错误

mysql - mysql中累计数据差异