postgresql如何按小时分表
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章将为大家详细讲解有关postgresql如何按小时分表,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。方法CREATE OR REPLACE FUNCTION
千家信息网最后更新 2026年11月01日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安全错误
数据库的锁怎样保障安全
河南云网互联网络科技有限公司
互联网科技未来
北京互联网科技
互联网金融 科技金融
致聘互联网科技
互联网女皇 腾讯科技
润盈互联网科技
科技互联网创业计划书
成都狮子座互联网科技
中盈科技互联网信息有限公司
温州喔噻互联网科技有限公司
浙江互联网科技研学营
允成互联网科技有限公司融资
佛山市翊博互联网络科技有限公司
深圳互联网科技的发展
半导体是互联网高科技吗
郑州欣桑互联网科技有限公司
西安有哪些互联网高科技企业
北京瑞云互联网科技有限公司
高科技和互联网的现代国家
华服互联网科技靠谱吗
亿人帮互联网科技有限公司
互联网科技公司的优势
科技与互联网
奇酷互联网科技公司
常德市电业局互联网科技部
互联网科技创新服务
互联网科技数字货币
恒生科技指数 中概互联网
承德科技产业互联网平台