在MySQL中将timestampdiff()设置为默认值
我在MySQL中有一个int(11)类型的列。我想将默认值设置为在MySQL中将timestampdiff()设置为默认值,mysql,database,default-value,Mysql,Database,Default Value,我在MySQL中有一个int(11)类型的列。我想将默认值设置为 timestampdiff(second,'2000-01-01 00:00:01',current_timestamp()) 现在我得到了这个错误: 操作失败:将SQL脚本应用于数据库时出错。 执行: 更改表格DB\u名称TABLE\u名称 更改列timetimeINT(11)空默认值“timestampdiff(秒,\'2000-01-01 00:00:01\',current_timestamp())” 错误1067:“时
timestampdiff(second,'2000-01-01 00:00:01',current_timestamp())
现在我得到了这个错误:
操作失败:将SQL脚本应用于数据库时出错。
执行:
更改表格DB\u名称
TABLE\u名称
更改列time
time
INT(11)空默认值“timestampdiff(秒,\'2000-01-01 00:00:01\',current_timestamp())”
错误1067:“时间”的默认值无效
SQL语句:
更改表格DB\u名称
TABLE\u名称
更改列
time
timeINT(11)NULL默认值“timestampdiff(秒,\'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
;
我认为戈尔丹的答案是你最好的选择。mysql不太可能为表定义计算表达式,因为表已经定义好了。