将timestampdiff()设置为MySQL中的默认值

时间:2015-08-15 06:40:44

标签: mysql database default-value

我在MySQL中有一个int(11)类型的列。我想将默认值设置为

timestampdiff(second,'2000-01-01 00:00:01',current_timestamp())

现在我收到此错误:

操作失败:将SQL脚本应用于数据库时出错。 执行: ALTER TABLE DB_NAMETABLE_NAME CHANGE COLUMN time time INT(11)NULL DEFAULT' timestampdiff(second,\' 2000-01-01 00:00:01 \',current_timestamp() )' ;

错误1067:'时间'无效的默认值 SQL语句: ALTER TABLE DB_NAMETABLE_NAME CHANGE COLUMN time time INT(11)NULL DEFAULT' timestampdiff(second,\' 2000-01-01 00:00:01 \',current_timestamp() )'

1 个答案:

答案 0 :(得分:2)

我认为在这里做到这一点的唯一方法是制作一个触发器

DELIMITER ;

CREATE TRIGGER default_time_trigger
BEFORE INSERT ON TABLE_NAME
FOR EACH ROW BEGIN
    IF (NEW.`time` IS NULL) THEN
        SET NEW.`time` = timestampdiff(second,'2000-01-01 00:00:01',current_timestamp());
    END IF;
END
;