mysql 设置默认的时间值
程序员文章站
2023-12-10 07:59:03
所以以 复制代码 代码如下:create_time datetime default now() 的形式设置默认值是不可能的。 代替的方案是使用timestamp类型代替d...
所以以
create_time datetime default now()
的形式设置默认值是不可能的。
代替的方案是使用timestamp类型代替datetime类型。
current_timestamp :当我更新这条记录的时候,这条记录的这个字段不会改变。
current_timestamp on update current_timestamp :当我更新这条记录的时候,这条记录的这个字段将会改变。即时间变为了更新时候的时间。(注意一个update设置一个列为它已经有的值,这将不引起timestamp列被更新,因为如果你设置一个列为它当前的值,mysql为了效率而忽略更改。)如果有多个timestamp列,只有第一个自动更新。
timestamp列类型自动地用当前的日期和时间标记insert或update的操作。
如果有多个timestamp列,只有第一个自动更新。
自动更新第一个timestamp列在下列任何条件下发生:
列值没有明确地在一个insert或load data infile语句中指定。
列值没有明确地在一个update语句中指定且另外一些的列改变值。(注意一个update设置一个列为它已经有的值,这将不引起timestamp列被更新,因为如果你设置一个列为它当前的值,mysql为了效率而忽略更改。)
你明确地设定timestamp列为null.
除第一个以外的timestamp列也可以设置到当前的日期和时间,只要将列设为null,或now()。
另外在5.0以上版本中也可以使用trigger来实现此功能。
create table test_time (
id int(11),
create_time datetime
);
delimiter |
create trigger default_datetime before insert on test_time
for each row
if new.create_time is null then
set new.create_time = now();
end if;|
delimiter ;
复制代码 代码如下:
create_time datetime default now()
的形式设置默认值是不可能的。
代替的方案是使用timestamp类型代替datetime类型。
current_timestamp :当我更新这条记录的时候,这条记录的这个字段不会改变。
current_timestamp on update current_timestamp :当我更新这条记录的时候,这条记录的这个字段将会改变。即时间变为了更新时候的时间。(注意一个update设置一个列为它已经有的值,这将不引起timestamp列被更新,因为如果你设置一个列为它当前的值,mysql为了效率而忽略更改。)如果有多个timestamp列,只有第一个自动更新。
timestamp列类型自动地用当前的日期和时间标记insert或update的操作。
如果有多个timestamp列,只有第一个自动更新。
自动更新第一个timestamp列在下列任何条件下发生:
列值没有明确地在一个insert或load data infile语句中指定。
列值没有明确地在一个update语句中指定且另外一些的列改变值。(注意一个update设置一个列为它已经有的值,这将不引起timestamp列被更新,因为如果你设置一个列为它当前的值,mysql为了效率而忽略更改。)
你明确地设定timestamp列为null.
除第一个以外的timestamp列也可以设置到当前的日期和时间,只要将列设为null,或now()。
另外在5.0以上版本中也可以使用trigger来实现此功能。
复制代码 代码如下:
create table test_time (
id int(11),
create_time datetime
);
delimiter |
create trigger default_datetime before insert on test_time
for each row
if new.create_time is null then
set new.create_time = now();
end if;|
delimiter ;