是否可以用NOW()添加默认时间,10分钟?MySQL日期时间默认时间间隔
我已经试过类似的东西:
CREATE TABLE `table1` (
`date` DATETIME NOT NULL DEFAULT DATE_ADD(NOW(), INTERVAL 10 MINUTE)
);
但是,这是行不通的。
是否可以用NOW()添加默认时间,10分钟?MySQL日期时间默认时间间隔
我已经试过类似的东西:
CREATE TABLE `table1` (
`date` DATETIME NOT NULL DEFAULT DATE_ADD(NOW(), INTERVAL 10 MINUTE)
);
但是,这是行不通的。
我不认为你可以做到这一点。
在数据类型规范的默认值子句表示为列一个 默认值。有一个例外,默认值必须是 是一个常数;它不能是一个函数或表达式。这意味着,例如, ,例如,您不能将日期列的默认值设置为 函数的值,例如NOW()或CURRENT_DATE。唯一的例外是 您可以指定CURRENT_TIMESTAMP为默认的 TIMESTAMP列
但是你可以使用一个插入触发器来实现这一目标。设置默认为 '日期' 栏为空,并用
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 MINUTE);
END IF;
END;
它显示了我的错误在第5行:** SET new.'date' = DATE_ADD(NOW(),间隔10分钟); ** (#1064 - 你的SQL语法有错误;查看与你的MySQL服务器版本相对应的手册,在第5行使用“''')。 – loop
我在Mysql 5.1上测试过它 - 你有什么版本?此外,您需要更改表以允许空值,并将缺省值设置为空。 – Inca
我已经将默认值设置为NULL并允许空值。版本是 - 5.5.13。 – loop