postgresql如何按小时分表
发表于:2025-01-22 作者:千家信息网编辑
千家信息网最后更新 2025年01月22日,这篇文章将为大家详细讲解有关postgresql如何按小时分表,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。方法CREATE OR REPLACE FUNCTION
千家信息网最后更新 2025年01月22日postgresql如何按小时分表
这篇文章将为大家详细讲解有关postgresql如何按小时分表,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
方法
CREATE OR REPLACE FUNCTION auto_insert_into_tbl_partition() RETURNS trigger AS$BODY$DECLARE time_column_name text ; -- 父表中用于分区的时间字段的名称[必须首先初始化!!] curMM varchar(16); -- 'YYYYMM'字串,用做分区子表的后缀 isExist boolean; -- 分区子表,是否已存在 strSQL text; BEGIN -- 调用前,必须首先初始化(时间字段名):time_column_name [直接从调用参数中获取!!] time_column_name := TG_ARGV[0]; -- 判断对应分区表 是否已经存在? EXECUTE 'SELECT $1.'||time_column_name INTO strSQL USING NEW; curMM := to_char( strSQL::timestamp , 'YYYYMMDDHH' ); select count(1) INTO isExist from pg_class where relname = ('t_audit_'||curMM); -- 若不存在, 则插入前需 先创建子分区 IF ( isExist = false ) THEN -- 创建子分区表 strSQL := 'CREATE TABLE IF NOT EXISTS t_audit_'||curMM||'() INHERITS (t_audit);' ; EXECUTE strSQL; -- 创建索引 strSQL := 'CREATE INDEX t_audit_'||curMM||'_INDEX_'||time_column_name||' ON t_audit_'||curMM||' ('||time_column_name||');' ; EXECUTE strSQL; END IF; -- 插入数据到子分区! strSQL := 'INSERT INTO t_audit_'||curMM||' SELECT $1.*' ; EXECUTE strSQL USING NEW; RETURN NULL; END$BODY$ LANGUAGE plpgsql;
我是按照小时对固定的一张表进行分表的,其实可以写活就是加个变量,拼sql的时候拼接进去。这个就是写个函数作为触发器的回调函数。就先判断一下这个表有没有,有就直接插,没有就建表再插。
CREATE TRIGGER insert_tbl_partition_trigger BEFORE INSERT ON t_audit FOR EACH ROW EXECUTE PROCEDURE auto_insert_into_tbl_partition('time');
建一个触发器,在父表的插入数据的时候执行前面的那个回调函数。
ps:下面看下postgresql 表触发器
1、先建一个函数,用来执行触发器启动后要执行的脚本
CREATE OR REPLACE FUNCTION "public"."trigger_day_aqi"() RETURNS "pg_catalog"."trigger" AS $BODY$BEGIN --日均值表,没有o3,小时值表,没有o3_8h NEW.so2iaqi=DAY_SO2_AQI(NEW.so2); NEW.no2iaqi=DAY_NO2_AQI(NEW.no2); NEW.coiaqi=DAY_CO_AQI(NEW.co); NEW.o3_8hiaqi=O3_8_AQI(NEW.o3_8h); NEW.pm10iaqi=PM10_AQI(NEW.pm10); NEW.pm25iaqi=PM25_AQI(NEW.pm25); NEW.aqi=NEW.coiaqi; NEW.primarypol='CO'; IF NEW.aqi2、建表的触发器,
CREATE TRIGGER gk_site_day_insert BEFORE INSERT ON gk_site_day FOR EACH ROW EXECUTE PROCEDURE trigger_day_aqi();关于"postgresql如何按小时分表"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
触发器
小时
函数
分表
篇文章
字段
就是
数据
时候
时间
更多
建子
分区表
不错
实用
内容
参数
变量
名称
后缀
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库是将许多具有相关性
服务器备份与恢复管理规范
莱西定制软件开发公司
阿里云服务器黑名单
福建多功能软件开发制造价格
五十台无盘服务器配置
中国联合国贸易数据库
如何保证软件开发按期交付
网络安全属于后端吗
一台hp服务器装多个系统
安装数据库为什么要关闭防火墙
网络安全周宣传的主题是
pg数据库升级注意事项
软件开发中专排名榜
数据库怎么加工到表
上海知言网络技术有限公司
达内数据库视频
国外对网络安全意识的研究
数据库怎么存地区列表
谷歌网络安全模式
局域网数据库sql连接
数据库未分配空间
如何把数据库远程导出
网络安全技术层面的特征包括哪些
数据库出生日期默认值不能保存
gta 警察服务器可以联机吗
清华同方数据库技术流视频
成都项目软件开发定做
r710和r720服务器
网络安全远程测试方案