Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在MySQL中将timestampdiff()设置为默认值_Mysql_Database_Default Value - Fatal编程技术网

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

在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:“时

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

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不太可能为表定义计算表达式,因为表已经定义好了。