当前位置: 首页 > news >正文

HGDB-修改分区表名称及键值

瀚高数据库
目录
环境
文档用途
详细信息

环境
系统平台:N/A
版本:4.5.7
文档用途
使用存储过程拼接SQL,修改分区名称、分区键值、并重新加入主表,适用于分区表较多场景。

详细信息
说明:本文档为测试过程;整体测试思路为,先将分区表与主表分离->其次修改该表的表名->然后修改该表与分区键相关数据->最后将该表加入主表。

1.处理过程

1.1创建两张测试表及分区表并插入数据

--创建测试主表1create table test.fenqu1(qhdm text,qxname text,id int,xinxi TEXT) partition by list(qhdm);--创建测试主表为1的分区表create table test.fenqu1_part_120100 partition of test.fenqu1 for values in ('120100');create table test.fenqu1_part_120000 partition of test.fenqu1 for values in ('120000');--创建测试主表2create table test.fenqu2(qhdm text,qxname text,id int,xinxi TEXT) partition by list(qhdm); --创建测试主表为1的分区表create table test.fenqu2_part_120100 partition of test.fenqu2 for values in ('120100');create table test.fenqu2_part_120000 partition of test.fenqu2 for values in ('120000');--插入数据至主表1insert into test.fenqu1 values('120100','bbb','1','zhao');insert into test.fenqu1 values('120100','bbb','2','qian');insert into test.fenqu1 values('120100','bbb','3','sun');insert into test.fenqu1 values('120100','bbb','4','li');insert into test.fenqu1 values('120100','bbb','5','chen');insert into test.fenqu1 values('120100','bbb','6','tie');insert into test.fenqu1 values('120100','bbb','7','song');insert into test.fenqu1 values('120100','bbb','8','shen');insert into test.fenqu1 values('120100','bbb','9','cheng');insert into test.fenqu1 values('120100','bbb','10','wang');insert into test.fenqu1 values('120100','bbb','11','ouyang');insert into test.fenqu1 values('120100','bbb','12','chu');insert into test.fenqu1 values('120000','aaa','20','zhao');insert into test.fenqu1 values('120000','aaa','21','qian');insert into test.fenqu1 values('120000','aaa','22','sun');insert into test.fenqu1 values('120000','aaa','23','li');insert into test.fenqu1 values('120000','aaa','24','chen');insert into test.fenqu1 values('120000','aaa','25','tie');insert into test.fenqu1 values('120000','aaa','26','song');insert into test.fenqu1 values('120000','aaa','27','shen');insert into test.fenqu1 values('120000','aaa','28','cheng');insert into test.fenqu1 values('120000','aaa','29','wang');insert into test.fenqu1 values('120000','aaa','30','ouyang');insert into test.fenqu1 values('120000','aaa','31','chu'); --插入数据至主表2insert into test.fenqu2 values('120100','bbb','1','赵');insert into test.fenqu2 values('120100','bbb','2','钱');insert into test.fenqu2 values('120100','bbb','3','孙');insert into test.fenqu2 values('120100','bbb','4','李');insert into test.fenqu2 values('120100','bbb','5','陈');insert into test.fenqu2 values('120100','bbb','6','铁');insert into test.fenqu2 values('120100','bbb','7','宋');insert into test.fenqu2 values('120100','bbb','8','申');insert into test.fenqu2 values('120100','bbb','9','成');insert into test.fenqu2 values('120100','bbb','10','王');insert into test.fenqu2 values('120100','bbb','11','欧阳');insert into test.fenqu2 values('120100','bbb','12','褚');insert into test.fenqu2 values('120000','aaa','20','ss');insert into test.fenqu2 values('120000','aaa','21','等等');insert into test.fenqu2 values('120000','aaa','22','ff');insert into test.fenqu2 values('120000','aaa','23','刚刚');insert into test.fenqu2 values('120000','aaa','24','给');insert into test.fenqu2 values('120000','aaa','25','铁');insert into test.fenqu2 values('120000','aaa','26','啦啦');insert into test.fenqu2 values('120000','aaa','27','联想');insert into test.fenqu2 values('120000','aaa','28','成');insert into test.fenqu2 values('120000','aaa','29','啊哈哈');insert into test.fenqu2 values('120000','aaa','30','切');insert into test.fenqu2 values('120000','aaa','31','来来来');

1.2通过主表查看两张表所插入的数据

test_biaofenqu=# select * from test.fenqu1;qhdm  | qxname | id | xinxi--------+--------+----+--------120000 | aaa    | 20 | zhao120000 | aaa    | 21 | qian120000 | aaa    | 22 | sun120000 | aaa    | 23 | li120000 | aaa    | 24 | chen120000 | aaa    | 25 | tie120000 | aaa    | 26 | song120000 | aaa    | 27 | shen120000 | aaa    | 28 | cheng120000 | aaa    | 29 | wang120000 | aaa    | 30 | ouyang120000 | aaa    | 31 | chu120100 | bbb    | 1 | zhao120100 | bbb    | 2 | qian120100 | bbb    | 3 | sun120100 | bbb    | 4 | li120100 | bbb    | 5 | chen120100 | bbb    | 6 | tie120100 | bbb    | 7 | song120100 | bbb    | 8 | shen120100 | bbb    | 9 | cheng120100 | bbb    | 10 | wang120100 | bbb    | 11 | ouyang120100 | bbb    | 12 | chu(24 行记录)test_biaofenqu=# select * from test.fenqu2;qhdm  | qxname | id | xinxi--------+--------+----+--------120000 | aaa    | 20 | ss120000 | aaa    | 21 | 等等120000 | aaa    | 22 | ff120000 | aaa    | 23 | 刚刚120000 | aaa    | 24 |120000 | aaa    | 25 |120000 | aaa    | 26 | 啦啦120000 | aaa    | 27 | 联想120000 | aaa    | 28 |120000 | aaa    | 29 | 啊哈哈120000 | aaa    | 30 |120000 | aaa    | 31 | 来来来120100 | bbb    | 1 |120100 | bbb    | 2 |120100 | bbb    | 3 |120100 | bbb    | 4 |120100 | bbb    | 5 |120100 | bbb    | 6 |120100 | bbb    | 7 |120100 | bbb    | 8 |120100 | bbb    | 9 |120100 | bbb    | 10 |120100 | bbb    | 11 | 欧阳120100 | bbb    | 12 |

1.3查看主表与分区表的关系

图片1.png
在这里插入图片描述

1.4创建存储过程及存储过程使用的相关表格

1)创建用于存放新老区划编码对应表格table_qhdm,并插入数据;--创建表格table_qhdm,用于存所有的区划代码create table table_qxdm (qhdm text,qxdmnew TEXT) ;--插入区划编码数据insert into table_qxdm values('120100','130100');insert into table_qxdm values('120000','130000');2)   创建表格table_tablename,用于存放所有主表的名称,并插入数据create table table_tablename (tabname text) ;--插入主表名称数据insert into table_tablename values('fenqu1');insert into table_tablename values('fenqu2');3)创建存放拼接后的sql语句存放表格ql_pinjie--创建用于存储拼接后的语句表sql_pinjiecreate table sql_pinjie (sql_pinjie text) ;4)创建拼接过程中存放报错表格tab_errorcreate table tab_error (tab_error_sql text) ;5)创建存储过程update_fenqu_tableCREATE OR REPLACE PROCEDURE test.update_fenqu_table()LANGUAGE plpgsqlAS $procedure$DECLAREv_qhdm record ;v_tablename record ;v_count int8 ;BEGIN--获取所有区划代码,区划代码包括,旧区划代码,新区划代码FOR v_qhdm in ( select qhdm , qxdmnew from table_qxdm )loop BEGINFOR v_tablename in ( select tabname from table_tablename )loop BEGINinsert into sql_pinjie VALUES ('alter table test.'||v_tablename.tabname ||' detach PARTITION test.'||v_tablename.tabname||'_part_'|| v_qhdm.qhdm || ';' ) ;    insert into sql_pinjie VALUES ('alter table test.'||v_tablename.tabname||'_part_'||v_qhdm.qhdm||' RENAME to '||v_tablename.tabname||'_part_'|| v_qhdm.qxdmnew||';') ;insert into sql_pinjie VALUES ( 'update test.'||v_tablename.tabname||'_part_'||v_qhdm.qxdmnew||' set qhdm='''||v_qhdm.qxdmnew||''';') ;insert into sql_pinjie VALUES ( 'alter table test.'||v_tablename.tabname||' ATTACH PARTITION test.'||v_tablename.tabname||'_part_'||v_qhdm.qxdmnew||' for values in ('''||v_qhdm.qxdmnew||''');');EXCEPTION WHEN OTHERS THEN insertinto tab_error values ( 'EXCEPT TABLE' || v_tablename.tabname || '_part_' || v_qhdm.qhdm || ';' ) ;END ;END loop ;COMMIT ;END ;END loop ;END $procedure$;6)执行存储过程update_fenqu_tablecall update_fenqu_table(7)查看所拼接的sql语句test_biaofenqu=# select * from sql_pinjie;sql_pinjie--------------------------------------------------------------------------------------------alter table test.fenqu1 detach PARTITION test.fenqu1_part_120100;alter table test.fenqu1_part_120100 RENAME to fenqu1_part_130100;update test.fenqu1_part_130100 set qhdm='130100';alter table test.fenqu1 ATTACH PARTITION test.fenqu1_part_130100 for values in ('130100');alter table test.fenqu2 detach PARTITION test.fenqu2_part_120100;alter table test.fenqu2_part_120100 RENAME to fenqu2_part_130100;update test.fenqu2_part_130100 set qhdm='130100';alter table test.fenqu2 ATTACH PARTITION test.fenqu2_part_130100 for values in ('130100');alter table test.fenqu1 detach PARTITION test.fenqu1_part_120000;alter table test.fenqu1_part_120000 RENAME to fenqu1_part_130000;update test.fenqu1_part_130000 set qhdm='130000';alter table test.fenqu1 ATTACH PARTITION test.fenqu1_part_130000 for values in ('130000');alter table test.fenqu2 detach PARTITION test.fenqu2_part_120000;alter table test.fenqu2_part_120000 RENAME to fenqu2_part_130000;update test.fenqu2_part_130000 set qhdm='130000';alter table test.fenqu2 ATTACH PARTITION test.fenqu2_part_130000 for values in ('130000');(16 行记录)8)执行对应的sql,对分区表完成操作alter table test.fenqu1 detach PARTITION test.fenqu1_part_120100;alter table test.fenqu1_part_120100 RENAME to fenqu1_part_130100;update test.fenqu1_part_130100 set qhdm='130100';alter table test.fenqu1 ATTACH PARTITION test.fenqu1_part_130100 for values in ('130100');alter table test.fenqu2 detach PARTITION test.fenqu2_part_120100;alter table test.fenqu2_part_120100 RENAME to fenqu2_part_130100;update test.fenqu2_part_130100 set qhdm='130100';alter table test.fenqu2 ATTACH PARTITION test.fenqu2_part_130100 for values in ('130100');alter table test.fenqu1 detach PARTITION test.fenqu1_part_120000;alter table test.fenqu1_part_120000 RENAME to fenqu1_part_130000;update test.fenqu1_part_130000 set qhdm='130000';alter table test.fenqu1 ATTACH PARTITION test.fenqu1_part_130000 for values in ('130000');alter table test.fenqu2 detach PARTITION test.fenqu2_part_120000;alter table test.fenqu2_part_120000 RENAME to fenqu2_part_130000;update test.fenqu2_part_130000 set qhdm='130000';alter table test.fenqu2 ATTACH PARTITION test.fenqu2_part_130000 for values in ('130000');

1.5查看修改后主表与分区表的关系

33.png
在这里插入图片描述

相关文章:

HGDB-修改分区表名称及键值

瀚高数据库 目录 环境 文档用途 详细信息 环境 系统平台:N/A 版本:4.5.7 文档用途 使用存储过程拼接SQL,修改分区名称、分区键值、并重新加入主表,适用于分区表较多场景。 详细信息 说明:本文档为测试过程&#xff1…...

1分钟了解音频、语音数据和自然语言处理的关系

机器学习在日常场景中的应用 音频、语音数据和自然语言处理这三者正在不断促进人工智能技术的发展,人机交互也逐渐渗透进生活的每个角落。在各行各业包括零售业、银行、食品配送服务商)的多样互动中,我们都能通过与某种形式的AI(…...

线性代数的学习和整理20,关于向量/矩阵和正交相关,相似矩阵等

目录 1 什么是正交 1.1 正交相关名词 1.2 正交的定义 1.3 正交向量 1.4 正交基 1.5 正交矩阵的特点 1.6 正交矩阵的用处 1 什么是正交 1.1 正交相关名词 orthogonal set 正交向量组正交变换orthogonal matrix 正交矩阵orthogonal basis 正交基orthogonal decompositio…...

OpenCV之ellipse函数

ellipse函数用来在图片中绘制椭圆、扇形,有两个重载函数。 函数原型1: void cv::ellipse( InputOutputArray img,Point center,Size axes,double angle,double startAngle,double …...

git快速查看某个文件修改的所有commit

1. git blame file git blame 可以显示历史修改的每一行记录,有时候我们只想了解某个文件一共提交几次commit,只显示commit列表,这种方式显然不满足要求。 2.git log常规使用 (1)显示整个project的所有commit (2)显示某个文件的所有commit 这是git log不添加参数的常规…...

加强版python连接飞书通知——本地电脑PC端通过网页链接打开本地已安装软件(调用注册表形式,以漏洞扫描工具AppScan为例)

前言 如果你想要通过超链接来打开本地应用,那么你首先你需要将你的应用添入windows注册表中(这样网页就可以通过指定代号来调用程序),由于安全性的原因所以网页无法直接通过输入绝对路径来调用本地文件。 一、通过创建reg文件自动配置注册表 创建文本文档,使用记事本打开…...

Jmeter进阶使用指南-使用断言

Apache JMeter是一个流行的开源负载和性能测试工具。在JMeter中,断言(Assertions)是用来验证响应数据是否符合预期的一个重要组件。它是对请求响应的一种检查,如果响应不符合预期,那么断言会标记为失败。 以下是如何在…...

44、Flink之module模块介绍及使用示例和Flink SQL使用hive内置函数及自定义函数详细示例--网上有些说法好像是错误的

Flink 系列文章 1、Flink 部署、概念介绍、source、transformation、sink使用示例、四大基石介绍和示例等系列综合文章链接 13、Flink 的table api与sql的基本概念、通用api介绍及入门示例 14、Flink 的table api与sql之数据类型: 内置数据类型以及它们的属性 15、Flink 的ta…...

电脑入门: 路由器初学者完全教程

路由器初学者完全教程 本文以Cisco2620为例,讲述了路由器的初始化配置以及远程接入的配置方法,探讨了如何使用内部网络的DHCP服务功能为远程拨入的用户分配地址信息以及路由器常见故障的排除技巧。 (本文假定Cisco2620路由器为提供远…...

如何查找GNU C语言参考手册

快捷通道 标准C/C参考手册 GNU C参考手册HTML版 GNU C参考手册PDF版本 HTML版本部分目录预览 从GNU官网找那个GNU C参考手册 访问gnu.org 点击软件 下滑找到gnu-c-manual或者在这个页面Ctrl-f搜索"manual" 点进去即可看到HTML版本和PDF版本...

弄懂软件设计模式(一):单例模式和策略模式

前言 软件设计模式和设计原则是十分重要的,所有的开发框架和组件几乎都使用到了,比如在这小节中的单例模式就在SpringBean中被使用。在这篇文章中荔枝将会仔细梳理有关单例模式和策略模式的相关知识点,其中比较重要的是掌握单例模式的常规写法…...

Redis----布隆过滤器

目录 背景 解决方案 什么是布隆过滤器 布隆过滤器的原理 一些其他运用 背景 比如我们在观看新闻或者刷微博的时候,会不停地给我们推荐新的内容,我们发现几乎没有重复的,说明后台已经进行了去重处理,基于如何去重&#xff0c…...

day 49 | 647. 回文子串 ● 516.最长回文子序列

647. 回文子串 dp含义:dp如果是表示i-j的序列中回文子串的个数的话,当新来一个后只能判定出来是整体的回文,内部的无法判断,所以用bool表示整体比较恰当。 递推公式:由于i,j是由i1,j-1决定的,所…...

【网络编程】C++实现网络通信服务器程序||计算机网络课设||Linux系统编程||TCP协议(附源码)

TCP网络服务器 🐍 1.程序简洁🦎2. 服务端ServerTcp程序介绍🦖3.线程池ThreadPool介绍🦕 4.任务类Task介绍🐙5. 客户端Client介绍🦑6.运行结果:🦐 7. 源码🦞7.1 serverTcp…...

C语言类型占内存大小

C语言类型占内存大小 C语言数据类型sizeof测试基本数据类型所占字符大小运行结果数据模型 C语言数据类型 sizeof测试基本数据类型所占字符大小 #include <stdio.h>int main() {char a;short b;int c;long d;float e;double f;printf("char %d\n", sizeof (a…...

使用GPT-4生成训练数据微调GPT-3.5 RAG管道

OpenAI在2023年8月22日宣布&#xff0c;现在可以对GPT-3.5 Turbo进行微调了。也就是说&#xff0c;我们可以自定义自己的模型了。然后LlamaIndex就发布了0.8.7版本&#xff0c;集成了微调OpenAI gpt-3.5 turbo的功能 也就是说&#xff0c;我们现在可以使用GPT-4生成训练数据&a…...

RUST 每日一省:模式匹配

我们经常使用let 语句创建新的变量绑定——但是 let 的功能并不仅限于此。事实上&#xff0c; let 语句是一个模式匹配语句。它允许我们根据内部结构对值进行操作和判断&#xff0c;或者可以用于从代数数据类型中提取值。 let tuple (1_i32, false, 3f32); let (head, center…...

利用Jmeter做接口测试(功能测试)全流程分析

利用Jmeter做接口测试怎么做呢&#xff1f;过程真的是超级简单。 明白了原理以后&#xff0c;把零碎的知识点填充进去就可以了。所以在学习的过程中&#xff0c;不管学什么&#xff0c;我一直都强调的是要循序渐进&#xff0c;和明白原理和逻辑。这篇文章就来介绍一下如何利用…...

依赖导入失败场景和解决方案

在使用 Maven 构建项目时&#xff0c;可能会发生依赖项下载错误的情况&#xff0c;主要原因有以下几种&#xff1a; 下载依赖时出现网络故障或仓库服务器宕机等原因&#xff0c;导致无法连接至 Maven 仓库&#xff0c;从而无法下载依赖。 依赖项的版本号或配置文件中的版本号错…...

DiffBIR: Towards Blind Image Restoration with Generative Diffusion Prior

DiffBIR: 基于生成扩散先验的盲图像恢复 论文链接&#xff1a;https://arxiv.org/abs/2308.15070 项目链接&#xff1a;https://github.com/XPixelGroup/DiffBIR Abstract 我们提出了DiffBIR&#xff0c;它利用预训练的文本到图像扩散模型来解决盲图像恢复问题。我们的框架采…...

Linux 文件类型,目录与路径,文件与目录管理

文件类型 后面的字符表示文件类型标志 普通文件&#xff1a;-&#xff08;纯文本文件&#xff0c;二进制文件&#xff0c;数据格式文件&#xff09; 如文本文件、图片、程序文件等。 目录文件&#xff1a;d&#xff08;directory&#xff09; 用来存放其他文件或子目录。 设备…...

Prompt Tuning、P-Tuning、Prefix Tuning的区别

一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...

(十)学生端搭建

本次旨在将之前的已完成的部分功能进行拼装到学生端&#xff0c;同时完善学生端的构建。本次工作主要包括&#xff1a; 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...

基于当前项目通过npm包形式暴露公共组件

1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹&#xff0c;并新增内容 3.创建package文件夹...

是否存在路径(FIFOBB算法)

题目描述 一个具有 n 个顶点e条边的无向图&#xff0c;该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序&#xff0c;确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数&#xff0c;分别表示n 和 e 的值&#xff08;1…...

计算机基础知识解析:从应用到架构的全面拆解

目录 前言 1、 计算机的应用领域&#xff1a;无处不在的数字助手 2、 计算机的进化史&#xff1a;从算盘到量子计算 3、计算机的分类&#xff1a;不止 “台式机和笔记本” 4、计算机的组件&#xff1a;硬件与软件的协同 4.1 硬件&#xff1a;五大核心部件 4.2 软件&#…...

【从零开始学习JVM | 第四篇】类加载器和双亲委派机制(高频面试题)

前言&#xff1a; 双亲委派机制对于面试这块来说非常重要&#xff0c;在实际开发中也是经常遇见需要打破双亲委派的需求&#xff0c;今天我们一起来探索一下什么是双亲委派机制&#xff0c;在此之前我们先介绍一下类的加载器。 目录 ​编辑 前言&#xff1a; 类加载器 1. …...

Python 高效图像帧提取与视频编码:实战指南

Python 高效图像帧提取与视频编码:实战指南 在音视频处理领域,图像帧提取与视频编码是基础但极具挑战性的任务。Python 结合强大的第三方库(如 OpenCV、FFmpeg、PyAV),可以高效处理视频流,实现快速帧提取、压缩编码等关键功能。本文将深入介绍如何优化这些流程,提高处理…...

rm视觉学习1-自瞄部分

首先先感谢中南大学的开源&#xff0c;提供了很全面的思路&#xff0c;减少了很多基础性的开发研究 我看的阅读的是中南大学FYT战队开源视觉代码 链接&#xff1a;https://github.com/CSU-FYT-Vision/FYT2024_vision.git 1.框架&#xff1a; 代码框架结构&#xff1a;readme有…...

iOS 项目怎么构建稳定性保障机制?一次系统性防错经验分享(含 KeyMob 工具应用)

崩溃、内存飙升、后台任务未释放、页面卡顿、日志丢失——稳定性问题&#xff0c;不一定会立刻崩&#xff0c;但一旦积累&#xff0c;就是“上线后救不回来的代价”。 稳定性保障不是某个工具的功能&#xff0c;而是一套贯穿开发、测试、上线全流程的“观测分析防范”机制。 …...