当前位置: 首页 > 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. 红黑树(一)之…...

Cursor实现用excel数据填充word模版的方法

cursor主页:https://www.cursor.com/ 任务目标:把excel格式的数据里的单元格,按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例,…...

23-Oracle 23 ai 区块链表(Blockchain Table)

小伙伴有没有在金融强合规的领域中遇见,必须要保持数据不可变,管理员都无法修改和留痕的要求。比如医疗的电子病历中,影像检查检验结果不可篡改行的,药品追溯过程中数据只可插入无法删除的特性需求;登录日志、修改日志…...

CocosCreator 之 JavaScript/TypeScript和Java的相互交互

引擎版本: 3.8.1 语言: JavaScript/TypeScript、C、Java 环境:Window 参考:Java原生反射机制 您好,我是鹤九日! 回顾 在上篇文章中:CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...

mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包

文章目录 现象:mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时,可能是因为以下几个原因:1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...

iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈

在日常iOS开发过程中,性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期,开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发,但背后往往隐藏着系统资源调度不当…...

【分享】推荐一些办公小工具

1、PDF 在线转换 https://smallpdf.com/cn/pdf-tools 推荐理由:大部分的转换软件需要收费,要么功能不齐全,而开会员又用不了几次浪费钱,借用别人的又不安全。 这个网站它不需要登录或下载安装。而且提供的免费功能就能满足日常…...

招商蛇口 | 执笔CID,启幕低密生活新境

作为中国城市生长的力量,招商蛇口以“美好生活承载者”为使命,深耕全球111座城市,以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子,招商蛇口始终与城市发展同频共振,以建筑诠释对土地与生活的…...

嵌入式学习之系统编程(九)OSI模型、TCP/IP模型、UDP协议网络相关编程(6.3)

目录 一、网络编程--OSI模型 二、网络编程--TCP/IP模型 三、网络接口 四、UDP网络相关编程及主要函数 ​编辑​编辑 UDP的特征 socke函数 bind函数 recvfrom函数(接收函数) sendto函数(发送函数) 五、网络编程之 UDP 用…...

基于开源AI智能名片链动2 + 1模式S2B2C商城小程序的沉浸式体验营销研究

摘要:在消费市场竞争日益激烈的当下,传统体验营销方式存在诸多局限。本文聚焦开源AI智能名片链动2 1模式S2B2C商城小程序,探讨其在沉浸式体验营销中的应用。通过对比传统品鉴、工厂参观等初级体验方式,分析沉浸式体验的优势与价值…...

Django RBAC项目后端实战 - 03 DRF权限控制实现

项目背景 在上一篇文章中,我们完成了JWT认证系统的集成。本篇文章将实现基于Redis的RBAC权限控制系统,为系统提供细粒度的权限控制。 开发目标 实现基于Redis的权限缓存机制开发DRF权限控制类实现权限管理API配置权限白名单 前置配置 在开始开发权限…...