mysql设置值timestamp获取当前时间并自动更新 |
您所在的位置:网站首页 › mysql中获取当前时间 › mysql设置值timestamp获取当前时间并自动更新 |
需求描述:现需要数据库中一个字段来记录当前记录的最近修改时间或者创建时间,并自动更新维护。 timestamp类型的使用示例如下: 创建一个数据库,并指定 uptime为 timestamp类型 create table test( tid int primary key auto_increment, uptime timestamp, hobby varchar(20) ); 插入一条数据 insert into test (tid,uptime,hobby) values(null,null,null); 查看数据库数据![]() ![]() ![]() ![]() 当我们设置timestamp类型为current_timestamp时,系统会自动获取当前修改或者创建时间,但是不糊自动维护。 那么问题来了? 如何让timestamp类型自动维护 我们重新传建一个是数据库 create table test2( pid int primary key auto_increment, uptime timestamp null default current_timestamp on update current_timestamp, hobby varchar(30) ); 我们先看一下创建后的表结构: show create table test2;我们注意一下 uptime 字段,可以为空,默认时间为current_timestamp, on update curret_timestamp设置可以使记录发生改变的时候时间自动改变。 插入一条没有默认时间的数据数据 insert into test2 values(null,null,null);查看表结构 我们再插入一条带默认时间的数据 insert into test2 values(null,current_timestamp,null);如图: 我们可以看到时间字段 在 自动维护,之前默认值为空的时候,在修改记录之后也会自动将时间改为 修改时间。 最后的完善我们已经可以做到 时间自动维护了,还有一个 小缺点,就是在刚开始插入时间时,我们没有传入默认时间的话,初始值为null,只有我们修改这条记录的时候他才会自动记录时间。 完善方案: 在创建数据库的时候设置 uptime字段为 not null create table test3(pid int primary key auto_increment,uptime timestamp not null default current_timestamp on update current_timestamp);表结构如下: 这样我们就会在创建该记录时候强制传入一个时间,并在修改的时候自动维护。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |