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

PostgreSQL 使用SQL

发布主题

设置发布为true

这个语句是针对 PostgreSQL 数据库中的逻辑复制功能中的逻辑发布(Logical Publication)进行设置的。

PostgreSQL 中,逻辑复制是一种基于逻辑日志的复制方法,允许将数据更改从一个数据库实例复制到另一个数据库实例,而不是通过传统的物理复制方式复制数据文件。逻辑发布是逻辑复制的一部分,用于定义要复制的数据对象。

update pg_publication set puballtables=true where pubname is not null;

创建发布主题例子:

-- 把所有表进行发布 也可指定CREATE PUBLICATION "发布名" FOR ALL TABLES;-- 指定表发布 创建发布名 for table代表含有哪些表被发布create PUBLICATION "发布名" FOR TABLE表名,表名,表名...;DROP PUBLICATION [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]
-- 删除发布的表名
DROP PUBLICATION mypublication;
-- 查询所有发布的主题(postgreSQL中的数据库) 
select * from pg_publication; 
-- 查询 发布名 含哪些表发布 
select * from pg_catalog.pg_publication_tables ppt where pubname ='表名'; 
-- 查询所有发布表 
select * from pg_publication_tables; 

ALTER PUBLICATION — 修改发布的定义

ALTER PUBLICATION name ADD TABLE [ ONLY ] table_name [ * ] [, ...]
ALTER PUBLICATION name SET TABLE [ ONLY ] table_name [ * ] [, ...]
ALTER PUBLICATION name DROP TABLE [ ONLY ] table_name [ * ] [, ...]
ALTER PUBLICATION name SET ( publication_parameter [= value] [, ... ] )
ALTER PUBLICATION name OWNER TO { new_owner | CURRENT_USER | SESSION_USER }
ALTER PUBLICATION name RENAME TO new_name

命令ALTER PUBLICATION可以更改发布的属性。

更改表的复制标识包含更新和删除的值

-- (如果一张表缺少主键,并且涉及到复制,就需要执行这条语句) 
-- 更改复制标识包含更新和删除之前值 
ALTER TABLE [表名] REPLICA IDENTITY FULL; 
-- 查看复制标识(为f标识说明设置成功) 
select relreplident from pg_class where relname='表名';

slot 插槽

查看solt使用情况 删除solt

-- 查看solt使用情况
SELECT * FROM pg_replication_slots; 
-- 删除solt zd_org_goods_solt为slot名
SELECT pg_drop_replication_slot('zd_org_goods_solt'); 

用户连接

查看用户连接数

-- 查询用户当前连接数 
select usename, count(*) from pg_stat_activity group by usename order by count(*) desc; 
-- 设置用户最大连接数 
alter role odps_etl connection limit 200;

分区

查询所属表的主表的分区表有哪些 并查看分区表的模式

-- 查询所属表的主表的分区表有哪些 并查看分区表的模式
SELECT parent.relname ASpartitioned_table,child.relname  AS partition,ns.nspname     AS schema
FROM pg_inheritsJOINpg_class AS parent ON parent.oid = pg_inherits.inhparentJOIN pg_class AS child ON child.oid= pg_inherits.inhrelidJOIN pg_namespace AS ns ON ns.oid = parent.relnamespace
WHERE parent.relkind ='p'-- ns.nspname 为你的模式名AND ns.nspname = 'your schema name'-- parent.relname 你的表名AND parent.relname = 'your table name'
ORDER BY parent.relname, child.relname;

判断分区。 查询分区表信息的 SQL

-- 查询表 是什么表类型,是否有子表,是否为一个分区表
SELECT relname, relkind, relhassubclass, relispartition
-- pg_class 表字段解释 如下表格
FROM pg_class
-- relname 你要查询的表名
WHERE relname = 'inp_order';

查询分区主表所属类型

SELECT c.relname AS table_name, p.partstrat AS partition_strategy
FROM pg_partitioned_table pJOIN pg_class c ON p.partrelid = c.oid
-- c.relname 为主表名称
WHERE c.relname = 'tablename'

查询分区键

SELECT pg_attribute.attname AS partition_key
FROM pg_attributeJOIN pg_partitioned_table ON pg_attribute.attrelid = pg_partitioned_table.partrelidJOIN pg_class ON pg_partitioned_table.partrelid = pg_class.oidJOIN pg_namespace ON pg_class.relnamespace = pg_namespace.oid
-- pg_class.relname 为表名         
WHERE pg_class.relname = 'tableName'
-- pg_namespace.nspname 为模式名  AND pg_namespace.nspname = 'schemaName'  AND pg_attribute.attnum = ANY (pg_partitioned_table.partattrs) 

删除 创建 分区

ALTER TABLE [tablename] DROP PARTITION '分区表名';

pg_class 表详细信息

名称类型引用描述
oidoid行标识符
relnamename表、索引、视图等的名字
relnamespaceoidpg_namespace.oid包含该关系的名字空间的OID
reltypeoidpg_type.oid可能存在的表行类型所对应数据类型的OID(对索引为0,索引没有pg_type项)
reloftypeoidpg_type.oid对于有类型的表,为底层组合类型的OID,对于其他所有关系为0
relowneroidpg_authid.oid关系的拥有者
relamoidpg_am.oid如果这是一个表或者索引,表示索引使用的访问方法(堆、B树、哈希等)
relfilenodeoid该关系的磁盘文件的名字,0表示这是一个“映射”关系,其磁盘文件名取决于低层状态
reltablespaceoidpg_tablespace.oid该关系所存储的表空间。如果为0,使用数据库的默认表空间。(如果关系无磁盘文件时无意义)
relpagesint4该表磁盘表示的尺寸,以页面计(页面尺寸为BLCKSZ)。这只是一个由规划器使用的估计值。它被VACUUMANALYZE以及一些DDL命令(如CREATE INDEX)所更新
reltuplesfloat4表中的存活行数。这只是一个由规划器使用的估计值。它被VACUUMANALYZE以及一些DDL命令(如CREATE INDEX)所更新。
relallvisibleint4在表的可见性映射表中被标记为全可见的页数。这只是一个由规划器使用的估计值。它被VACUUMANALYZE以及一些DDL命令(如CREATE INDEX)所更新
reltoastrelidoidpg_class.oid与该表相关联的TOAST表的OID,如果没有则为0。TOAST表将大属性“线外”存储在一个二级表中
relhasindexbool如果这是一个表并且其上建有(或最近建有)索引则为真
relissharedbool如果该表在集簇中的所有数据库间共享则为真。只有某些系统目录(如pg_database)是共享的
relpersistencecharp = 永久表,u = 无日志表, t = 临时表
relkindcharr = 普通表, i = 索引, S = 序列, t = TOAST表, v = 视图, m = 物化视图, c = 组合类型, f = 外部表, p = 分区表, I = 分区索引
relnattsint2关系中用户列的数目(系统列不计算在内)。在pg_attribute中必须有这么多对应的项。另请参阅pg_attribute.attnum
relchecksint2表上CHECK约束的数目,参见pg_constraint目录
relhasrulesbool如果表有(或曾有)规则则为真,参见 pg_rewrite目录
relhastriggersbool如果表有(或曾有)触发器则为真目录
relhassubclassbool如果表或者索引有(或曾有)任何继承子女则为真
relrowsecuritybool如果表上启用了行级安全性则为真,参见 pg_policy目录
relforcerowsecuritybool如果行级安全性(启用时)也适用于表拥有者则为真,参见 pg_policy目录
relispopulatedbool如果表已被填充则为真(对于所有关系该列都为真,但对于某些物化视图却不是)
relreplidentchar用来为行形成“replica identity”的列: d = 默认 (主键,如果存在), n = 无, f = 所有列 i = 索引的indisreplident被设置或者为默认
relispartitionbool如果表或索引是一个分区,则为真
relrewriteoidpg_class.oid对于在要求表重写的DDL操作期间被写入的新关系,这个域包含原始关系的OID,否则为0。那种状态仅在内部可见,对于一个用户可见的关系这个域应该从不包含不是0的值
relfrozenxidxid在此之前的所有事务ID在表中已经被替换为一个永久的(“冻结的”) 事务ID。这用于跟踪表是否需要被清理,以便阻止事务ID回卷或者允许pg_xact被收缩。如果该关系不是一个表则为0(InvalidTransactionId
relminmxidxid在此之前的多事务ID在表中已经被替换为一个事务ID。这被用于跟踪表是否需要被清理,以阻止 多事务ID回卷或者允许pg_multixact被收缩。如果关系不是一个表则 为0(InvalidMultiXactId
relaclaclitem[]访问权限
reloptionstext[]访问方法相关的选项,以“keyword=value”字符串形式
relpartboundpg_node_tree如果表示一个分区(见relispartition),分区边界的内部表达

索引

查询索引

-- schemaname 指定模式名,tablename 指定表名
SELECT * FROM pg_indexes WHERE schemaname = '%s' and tablename= '%s'

pg_indexes 表详细信息

名字类型引用描述
schemanamenamepg_namespace.nspname包含表和索引的模式的名字
tablenamenamepg_class.relname此索引所服务的表的名字
indexnamenamepg_class.relname索引的名字
tablespacenamepg_tablespace.spcname包含索引的表空间名字(如果是数据库缺省,则为 NULL)
indexdeftext索引定义(一个重建的CREATE INDEX命令)

索引CRD(增加,查看,删除)

-- 查看索引
SELECT * FROM pg_indexes WHERE tablename='表名';
-- 或者
SELECT * FROM pg_statio_all_indexes WHERE relname='表名';
-- 创建索引
CREATE INDEX IF NOT EXISTS [表名]  ON  [索引名称]('字段'...);
-- 删除索引
DROP INDEX [索引名称];  

相关文章:

PostgreSQL 使用SQL

发布主题 设置发布为true 这个语句是针对 PostgreSQL 数据库中的逻辑复制功能中的逻辑发布(Logical Publication)进行设置的。 PostgreSQL 中,逻辑复制是一种基于逻辑日志的复制方法,允许将数据更改从一个数据库实例复制到另一…...

Shell编程基础(十四)文本三剑客(grep)

文本三剑客(grep) 使用场景基本使用返回值参数 使用场景 主要用于查找,过滤文本数据;该数据可以来自文件,也可以来自管道流等等。 grep除了原有的实现,后来还出现了以下扩展实现 egrep:支持扩展…...

Linux root用户执行修改密码命令,提示 Permission denied

问题 linux系统中(ubuntu20),root用户下执行passwd命令,提示 passwd: Permission denied ,如下图: 排查 1.执行 ll /usr/bin/passwd ,查看文件权限是否正确,正常情况是 -rwsr-xr…...

Java面向对象学习第三部分

一、Static修饰符 static是静态的意思,基本概念如下: Static分类: 一般我们分类都是按照是否使用static修饰进行分类。分为静态变量(类变量)、实例变量。 静态变量和实例变量的比较: 比较,…...

python+vue生成条形码码并展示

需求 最近想做一个小工具,大概要实现这样的效果:后端生成条形码后,不保存到服务器,直接返回给前端展示。 大概思路是,通过 python-barcode库 生成条码的字节流,生成字节流后直接编码成base64格式返回给前…...

在线高精地图生成算法调研

1.HDMapNet 整体的网络架构如图所示,最终的Decoder输出三个分支,一个语义分割,一个embedding嵌入分支,一个方向预测。然后通过后处理将这些信息处理成向量化的道路表示。 img2bev的方式之前有IPM,通过假设地面的高度都…...

【干货】商城系统的重要功能特性介绍

电子商务的快速发展,商城系统成为了企业开展线上销售的重要工具。一款功能强大、用户友好的商城系统能够有效提升企业的销售业绩,提供良好的购物体验。下面就商城系统的重要功能特性作一些简单介绍,帮助企业选择合适的系统,打造成…...

MYSQL06高级_为什么使用索引、优缺点、索引的设计、方案、聚簇索引、联合索引、注意事项

文章目录 ①. 为什么使用索引②. 索引及其优缺点③. InnoDb - 索引的设计④. InnoDb中的索引方案⑤. 索引 - 聚簇索引⑥. 索引 - 二级索引⑦. B树索引的注意事项⑧. MyISAM中索引方案 ①. 为什么使用索引 ①. 索引是存储引擎用于快速找到数据记录的一种数据结构,就好比去图书馆…...

LeetCode 130. 被围绕的区域

题目链接:130. 被围绕的区域 题目描述 给你一个 m x n 的矩阵 board ,由若干字符 ‘X’ 和 ‘O’ ,找到所有被 ‘X’ 围绕的区域,并将这些区域里所有的 ‘O’ 用 ‘X’ 填充。 示例1: 输入:board [[“…...

python中2等于2.0吗,python中【1:2】

本篇文章给大家谈谈python中2等于2.0吗,以及python中【1:2】,希望对各位有所帮助,不要忘了收藏本站喔。 变量和赋值 Python中的变量不需要声明, 直接定义即可. 会在初始化的时候决定变量的 “类型” 使用 来进行初始化和赋值操作 定义变量时…...

【2023年11月第四版教材】《第2章-信息技术发展(第一部分)》

《第2章-信息技术发展(第一部分)》 章节说明1 计算机软硬件2 计算机网络2.1 网络的作用范围2.2 OSI模型2.3 广域网协议2.4 网络协议2.5 TCP/IP2.6 软件定义网络(SDN)2.7 第五代移动通信技术 章节说明 大部分为新增内容&#xff0…...

【CSS】说说对BFC的理解

目录 一、概念 二、BFC的布局规则 三、设置BFC的常用方式 四、BFC的应用场景 1、解决浮动元素令父元素高度坍塌的问题 2、解决非浮动元素被浮动元素覆盖问题 3、解决外边距垂直方向重合的问题 五、总结 一、概念 我们在页面布局的时候,经常出现以下情况&am…...

ES6学习-Class类

class constructor 构造方法 this 代表实例对象 方法之间不需要逗号分隔,加了会报错。 typeof Point // "function" Point Point.prototype.constructor // true类的数据类型就是函数,类本身就指向构造函数。 类的所有方法都定义在类的pr…...

C语言经典小游戏之扫雷(超详解释+源码)

“少年气,是历尽千帆举重若轻的沉淀,也是乐观淡然笑对生活的豁达!” 今天我们学习一下扫雷游戏怎么用C语言来实现! 扫雷小游戏 1.游戏介绍2.游戏准备3.游戏实现3.1生成菜单3.2游戏的具体实现3.2.1初始化棋盘3.2打印棋盘3.3布置雷…...

算法leetcode|67. 二进制求和(rust重拳出击)

文章目录 67. 二进制求和:样例 1:样例 2:提示: 分析:题解:rust:go:c:python:java: 67. 二进制求和: 给你两个二进制字符串 a 和 b &a…...

【ASP.NET MVC】第一个登录页面(8)

一、准备工作 先从网上(站长之家、模板之家,甚至TB)下载一个HTML模板,要求一整套的CSS和必要的JS,比如下图: 登录页面的效果是: 首页: 利用这些模板可以减少前台网页的设计——拿来…...

使用Openoffice或LibreOffice实现World、Excel、PPTX在线预览

使用Openoffice或LibreOffice实现World、Excel、PPTX在线预览 预览方案使用第三方服务使用前端库转换格式 jodconverterjodconverter概述主要特性OpenOfficeLibreOffice jodconverter的基本使用添加依赖配置创建DocumentConverter实例上传与转换预览启动上传与预览World 与Spri…...

20天学会rust(三)没有object的rust怎么面向对象?

面向对象我们都很熟悉,可以说它是一种软件开发最重要的编程范式之一,它将程序中的数据和操作数据的方法组织成对象。面向对象有几个重要特性: 封装、继承和多态,基于这些特性带来了在可重用性、可维护性、扩展性、可靠性的优点。 …...

整数规划——第三章 全单模矩阵

整数规划——第三章 全单模矩阵 若线性规划问题的约束矩阵为全单模矩阵,则该问题可行域的顶点都是整数点,从而线性规划与整数规划的最优解相同。 3.1 全单模性与最优性 考虑线性整数规划问题: (IP) min ⁡ c T x , s . t . A x ≤ b , x …...

数据结构和算法

数据结构和算法目录表 CCJava线性结构 1. 数组、单链表和双链表 2. Linux内核中双向链表的经典实现 数组、单链表和双链表 数组、单链表和双链表 栈 栈 栈 队列 队列 队列树形结构 二叉查找树 二叉查找树 二叉查找树 AVL树 AVL树 AVL树 伸展树 伸展树 伸展树 1. 红黑树(一)之…...

接口测试中缓存处理策略

在接口测试中,缓存处理策略是一个关键环节,直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性,避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明: 一、缓存处理的核…...

微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】

微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来,Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...

vscode(仍待补充)

写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh? debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...

学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1

每日一言 生活的美好,总是藏在那些你咬牙坚持的日子里。 硬件:OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写,"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...

高危文件识别的常用算法:原理、应用与企业场景

高危文件识别的常用算法:原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件,如包含恶意代码、敏感数据或欺诈内容的文档,在企业协同办公环境中(如Teams、Google Workspace)尤为重要。结合大模型技术&…...

Neo4j 集群管理:原理、技术与最佳实践深度解析

Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...

相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)

【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...

Java求职者面试指南:计算机基础与源码原理深度解析

Java求职者面试指南:计算机基础与源码原理深度解析 第一轮提问:基础概念问题 1. 请解释什么是进程和线程的区别? 面试官:进程是程序的一次执行过程,是系统进行资源分配和调度的基本单位;而线程是进程中的…...

如何更改默认 Crontab 编辑器 ?

在 Linux 领域中,crontab 是您可能经常遇到的一个术语。这个实用程序在类 unix 操作系统上可用,用于调度在预定义时间和间隔自动执行的任务。这对管理员和高级用户非常有益,允许他们自动执行各种系统任务。 编辑 Crontab 文件通常使用文本编…...

R 语言科研绘图第 55 期 --- 网络图-聚类

在发表科研论文的过程中,科研绘图是必不可少的,一张好看的图形会是文章很大的加分项。 为了便于使用,本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中,获取方式: R 语言科研绘图模板 --- sciRplothttps://mp.…...