Mysql 添加日期时间作为默认值

Mysql 添加日期时间作为默认值,mysql,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) ) 我

我们可以在创建表时使用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)
 )

我尝试了上面的查询,它给了我一个语法错误。我知道使用触发器可以很容易地实现这一点,但我想知道为什么这个查询不起作用。有什么想法吗?

MySQL中的默认值必须是常量。它们不能是函数或表达式(当前_时间戳除外)


来源:

我认为不可能在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;