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

set timestampdiff() as default value in MySQL

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

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

现在我收到这个错误:

操作失败:将 SQL 脚本应用到数据库时出错。 执行: 改变 TABLE DB_NAME.TABLE_NAME 更改列 time time INT(11) NULL DEFAULT 'timestampdiff(second,\'2000-01-01 00:00:01\',current_timestamp())' ;

错误 1067:'time' 的默认值无效 SQL声明: 改变 TABLE DB_NAME.TABLE_NAME 更改列 time time INT(11) NULL DEFAULT 'timestampdiff(second,\'2000-01-01 00:00:01\',current_timestamp())'

我认为这里唯一的方法是触发

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
;