将日期时间添加为默认值

时间:2014-12-22 11:08:25

标签: mysql

我们可以在创建表时使用dateadd函数吗?

CREATE  TABLE test(
id  INTEGER(16) NOT NULL AUTO_INCREMENT,
CONSTRAINT PRIMARY KEY  (id),
controlstarttime DATETIME NOT NULL DEFAULT NOW(),
timeout DATETIME NOT NULL DEFAULT DATE_ADD(CURRENT_TIMESTAMP, INTERVAL 10 SECOND)
 )

我尝试了上面的查询,它给了我一个语法错误。我知道这可以使用触发器轻松完成。但我想知道为什么这个查询不起作用。有什么想法吗?

2 个答案:

答案 0 :(得分:2)

MySQL中的DEFAULT值必须是常量。它们不能是函数或表达式(CURRENT_TIMESTAMP除外)。

来源:http://dev.mysql.com/doc/refman/5.6/en/data-type-defaults.html

答案 1 :(得分:1)

我认为不可能在mysql中创建默认间隔,但你可以创建一个触发器

CREATE TRIGGER settime
BEFORE INSERT on table1
FOR EACH ROW BEGIN
   IF new.`date` is null THEN
    SET new.`date` = DATE_ADD(NOW(), INTERVAL 10 SECOND);
    END IF;
END;