我正在尝试创建一个表,在创建后的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值/列....我怎么能得到这个?
答案 0 :(得分:0)
您无法设置既不是NULL也不是当前时间的默认值。