如何将计算的时间戳设置为默认值MySQL

时间:2014-04-07 18:20:51

标签: mysql sql database

我正在尝试创建一个表,在创建后的2周内设置到期日期。下一个select语句给了我那条记录:

 (SELECT TIMESTAMPADD(WEEK,2,(CURRENT_TIMESTAMP)));

| 2014-04-21 18:08:52 |

但是create table上的DEFAULT不允许我放任何表达式:

create table test (somename varchar(32), expiry TIMESTAMP DEFAULT (SELECT TIMESTAMPADD(WEEK,2,(CURRENT_TIMESTAMP))));

怎么能实现这个目标? - 更新 - 我尝试了这个触发器,但我的语法错了:

  

在INSERT ON测试BEGIN DECLARE exp后创建TRIGGER expiryset   TIMESTAMP; SET @exp:=(SELECT   TIMESTAMPADD(周,2,(CURRENT_TIMESTAMP))); UPDATE测试SET到期=   @exp WHERE somename =; END;

这有效,但我需要在触发器之前获取插入的somename值/列....我怎么能得到这个?

1 个答案:

答案 0 :(得分:0)

您无法设置既不是NULL也不是当前时间的默认值。