当前位置: 移动技术网 > IT编程>数据库>Mysql > mysql 设置默认的时间值

mysql 设置默认的时间值

2017年12月12日  | 移动技术网IT编程  | 我要评论
所以以
复制代码 代码如下:

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 ;

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网