PostgreSQL设置时间自动更新的示例代码
作者:考虑考虑
在我们日常开发中,在设计数据库字段的时候不可避免的都要created_time以及updated_time两个时间戳字段,作用大家也都一目了然,下面将为大家详细介绍PostgreSQL设置时间自动更新的方法,需要的朋友可以参考下
前言
在使用PostgreSQL
数据库,可以通过设置字段的默认值和更新机制来实现自动更新时间和创建时间,但是跟MySQL
又有点区别
默认时间
可以使用CURRENT_TIMESTAMP
函数插入当前时间,sql
语句为
CREATE TABLE sys_user ( id SERIAL PRIMARY KEY, name VARCHAR(255), create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
执行insert
操作
insert into sys_user values(1, 'aaa')
时间会自动生成
执行更新操作
update sys_user set name = 'bbb' where id =1
发现时间还是不变
使用触发器更新时间
CREATE TABLE sys_user ( id SERIAL PRIMARY KEY, name VARCHAR(255), create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
创建一个触发器
create or replace function update_timestamp() returns trigger as $$ begin new.update_time= current_timestamp; return new; end $$ language plpgsql;
然后执行语句
create trigger update_timestamp before update on sys_user for each row execute procedure update_timestamp();
其中,sys_user
为表名,update_timestamp
为触发器名称,随意填写,update_timestamp()
为触发器函数名称
执行insert
语句
insert into sys_user values(1, 'aaa')
其中,sys_user
为表名,update_timestamp
为触发器名称,随意填写,update_timestamp()
为触发器函数名称
执行insert
语句
insert into sys_user values(1, 'aaa')
结果如下
执行更新操作
update sys_user set name = 'bbb' where id =1
结果如下
到此这篇关于PostgreSQL设置时间自动更新的示例代码的文章就介绍到这了,更多相关PostgreSQL时间自动更新内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!