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();
剩下的就是自己测试一下了。