我需要在 MySQL 5.7
的 varchar 列中添加当前时间戳作为默认值这是我正在尝试的表查询
CREATE TABLE foo (
creation_time VARCHAR(100) DEFAULT CURRENT_TIMESTAMP, col1 VARCHAR(100)
)
假设现有时间具有如下所示的 varchar 类型:
create table foo (creation_time varchar(30));
如果可以更改日期类型,我们可以使用:
alter table foo change column creation_time creation_time datetime default current_timestamp;
注意:
alter table
过程包括创建新表,然后复制数据,最后销毁原表。所以应该在下班时间进行。但是,如果数据类型无法更改。然后我们必须使用触发器来完成时间戳初始化工作。
delimiter //
create trigger timestamp_init before insert on foo for each row
begin
set new.creation_time=current_timestamp();
end//
delimiter ;
现在,每次插入新行时,
insert
触发器都会自动将 varchar 列的值设置为当前日期时间。
insert foo (creation_time) values(default);