将 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
;
我在 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
;