postgresql 时间戳自动更新

PostgreSQL执行Insert语句时,自动填入时间的功能可以在创建表时实现,但更新表时时间戳不会自动自动更新。

 

解决方案

通过触发器实现,具体如下:

create or replace function upd_timestamp() returns trigger as
$$
begin
    new.change_datetime = current_timestamp;  --change_datetime为更新时间戳字段;所有的表建议都使用这个字段作为更新的时间戳字段;
    return new;
end
$$
language plpgsql;

创建一个例子表:

create table ts (
    id      bigserial  primary key,
    tradeid integer ,
    email varchar(50),
    num integer,
    change_datetime timestamp default now()  --change_datetime 为更新字段。
);

创建这个表上的触发器:

create trigger t_name before update on ts for each row execute procedure upd_timestamp();

剩下的就是自己测试一下了。

posted @ 2021-04-23 21:52  Thenext  阅读(494)  评论(0编辑  收藏  举报