是否可以使用NOW(),10分钟添加到默认时间?
我尝试过这样的事情:
CREATE TABLE `table1` (
`date` DATETIME NOT NULL DEFAULT DATE_ADD(NOW(), INTERVAL 10 MINUTE)
);
然而,它不起作用。
答案 0 :(得分:5)
我认为你不能这样做。
数据类型规范中的DEFAULT值子句表示a 列的默认值。除了一个例外,默认值必须 是一个常数;它不能是一个功能或表达。这意味着, 例如,您不能将日期列的默认值设置为 NOW()或CURRENT_DATE等函数的值。例外 是你可以指定CURRENT_TIMESTAMP作为a的默认值 TIMESTAMP专栏
答案 1 :(得分:5)
然而,您可以使用插入触发器来完成此操作。将“date”列的默认值设置为null,然后使用
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;