我在MySQL中有一个int(11)类型的列。我想将默认值设置为
timestampdiff(second,'2000-01-01 00:00:01',current_timestamp())
现在我收到此错误:
操作失败:将SQL脚本应用于数据库时出错。
执行:
ALTER TABLE DB_NAME
。TABLE_NAME
CHANGE COLUMN time
time
INT(11)NULL DEFAULT' timestampdiff(second,\' 2000-01-01 00:00:01 \',current_timestamp() )' ;
错误1067:'时间'无效的默认值
SQL语句:
ALTER TABLE DB_NAME
。TABLE_NAME
CHANGE COLUMN time
time
INT(11)NULL DEFAULT' timestampdiff(second,\' 2000-01-01 00:00:01 \',current_timestamp() )'
答案 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
;