博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
postgresql获取表最后更新时间(通过触发器将时间写入另外一张表)
阅读量:5086 次
发布时间:2019-06-13

本文共 1176 字,大约阅读时间需要 3 分钟。

通过触发器方式获取表最后更新时间,并将时间信息写入到另外一张表

一、创建测试表和表记录更新时间表

CREATE TABLE weather(city varchar(80),temp_lo int,  --最低温度temp_hi int,  --最高温度prcp real,     --湿度date date);
CREATE TABLE t_record_change(table_name varchar(32) primary key,last_update_time timestamp(6) with time zone,trans_id varchar(32),commited numeric(1,0));

二、创建触发器函数

--创建触发器函数create or replace function f_update_change_log() returns trigger as $$begin    insert into t_record_change(table_name,last_update_time,trans_id,commited) values(TG_TABLE_NAME,current_timestamp,(select txid_current()),1)        on conflict(table_name)    do update set last_update_time = current_timestamp,trans_id = (select txid_current()),commited = 1;    return null;end;$$ language plpgsql;

三、创建触发器

--创建触发器drop trigger if exists x_weather_u on weather;create trigger x_weather_u after insert or update or delete on weatherfor each statement execute procedure f_update_change_log();

四、测试

在sql窗口中分别执行以下sql语句,并到t_record_change表中查看时间是否更新

insert into weather values('nanjing',20,40,0.28,'2018-06-27');update weather set temp_lo = 15 where city = 'nanjing';delete from weather where city = 'nanjing';

 

转载于:https://www.cnblogs.com/mxly/p/9268768.html

你可能感兴趣的文章
如何衡量每个人在各自团队的效率和绩效?
查看>>
AcWing:173. 矩阵距离(bfs)
查看>>
C# 正则表达式
查看>>
Spring Cloud 入门教程(四): 分布式环境下自动发现配置服务
查看>>
Spring Cloud 入门教程(六): 用声明式REST客户端Feign调用远端HTTP服务
查看>>
Spring Cloud 入门教程(一): 服务注册
查看>>
【2.1】模型层简介
查看>>
python3安装文件遇到ssl未安装问题
查看>>
【2.4】初识Django Admin模块
查看>>
【2.5】实现博客数据返回页面
查看>>
【2.2】创建博客文章模型
查看>>
【3.1】Cookiecutter安装和使用
查看>>
【2.3】初始Django Shell
查看>>
Linux(Centos)之安装Redis及注意事项
查看>>
iOS9 HTTP 不能正常使用的解决办法
查看>>
JAVA 面向对象补充[toString方法和equals方法]
查看>>
ID3算法
查看>>
Java Math类(java.lang包)
查看>>
linux samba 服务器 简单配置
查看>>
Project Euler Problem 21-Amicable numbers
查看>>