pg数据库查找出所有未建立主键的表的超级简单方法,只需要使用到一张系统表

海山数据库(He3DB)源码详解:海山PG 表和元组的组织方式(1) PostgreSQL是一种开源的关系型数据库管理系统,具有强大的功能和可靠性。在PostgreSQL数据库中,表和元组是数据组织的基础单元。其中,表是PG数据库中存储数据的逻辑结构,由多个列(Column)和行(Row)组成。列代表了数据字段,而行则代表了一条条的数据记录。每个表都有其独特的属性,如主键()、外键()、索引(Index)等。主键用于唯一标识表中的一条记录,外键用于建立表与表之间的关联,索引则用于提高查询效率。在PostgreSQL中,元组通常指的是表中的一行数据,即一条记录。 阅读详情

第一章 问题解决

step1 找出数据库中所有的表英文名称

找出数据库中所有的表英文名称,命名为表A

SELECT * from pg_class where pg_class.reltoastrelid!=0 and pg_class.relname not like 'pg_%' and pg_class.relname not like 'sql_%'

step2 找出所有主键的表

找出所有主键的表,命名为表B

SELECT pg_class.relname from pg_class where pg_class.relname like '%_pkey'

step3 查找出未建立主键的表

方式是:从A表中取出不在B表中去掉后缀‘_pkey’的元素,即可完成

SELECT A.a1 from (SELECT pg_class.relname a1 from pg_class where pg_class.reltoastrelid!=0 and pg_class.relname not like 'pg_%' and pg_class.relname not like 'sql_%' ) as A
where A.a1 not in  
(SELECT split_part(pg_class.relname,'_pkey',1) as aa from pg_class where pg_class.relname like '%_pkey')

第二章 知识补充

pg_constraint 该系统表存储PostgreSQL中表对象的检查约束、主键、唯一约束和外键约束。
pg_attribute该系统表存储所有表(包括系统表,如pg_class)的字段信息。数据库中的每个表的每个字段在pg_attribute表中都有一行记录。
pg_type该系统表存储有关数据类型的信息。
pg_class该系统表记录了数据表、索引(仍然需要参阅pg_index)、序列、视图、复合类型和一些特殊关系类型的元数据

pg_constraint.conname (约束名字)
pg_constraint.conrelid (该约束所在的表,如果不是表约束则为0)
pg_constraint.conkey (如果是表约束,则是约束控制的字段列表)
pg_constraint.contypec ( 检查约束, f = 外键约束, p = 主键约束, u = 唯一约束)
pg_constraint.conkey (如果是表约束(包含外键,但是不包含约束触发器),则是约束字段的列表)
pg_attribute.attname (字段名)
pg_attribute.attrelid (此字段所属的表)
pg_attribute.atttypid (字段的数据类型)
pg_attribute.attnum (字段数目。普通字段是从 1 开始计数的。系统字段 (比如oid)有(任意)负数)
pg_type.typname (数据类型名字)
pg_type.oid (行标识符(隐藏属性;必须明确选择))
pg_class.relname (数据类型名字)
pg_class.oid (行标识符(隐藏属性; 必须明确选择))

PostgreSQL查询主键的详细信息、PostgreSQL查询没有主键的表名 阅读详情

相关推荐

微信聊天记录数据库解密实战:从WCDB到sqlcipher4的关键步骤解析

本文详细解析了微信桌面版聊天记录数据库的解密实战过程。通过逆向分析,定位了微信从WCDB框架到sqlcipher4加密的关键步骤,并成功提取了数据库密钥。文章重点介绍了如何通过动态调试、字符串定位等方法,追踪并验证sqlcipher4的加密密钥,最终实现对加密数据库文件的解密操作,为安全研究和数据恢复提供了技术参考。

weixin_29322553的博客 1071

PostgreSQL系统表探秘:手把手教你用pg_database和pg_class理清库、Schema和表的关系

本文深入解析PostgreSQL系统表pg_database和pg_class的使用技巧,帮助开发者理清数据库、Schema和表之间的逻辑结构关系。通过实战案例和SQL示例,展示如何利用这些系统表进行元数据管理、性能优化和故障排查,提升数据库运维效率。

weixin_28736335的博客 143

微软登录OAuth 2.0授权流程

OAuth 2.0是一个关于授权的开放网络标准,它允许第三方应用获取用户数据,是目前最流行的授权机制。微软身份平台支持OAuth 2.0授权码流程,使得客户端应用程序能够获得对受保护资源(如网络API)的授权访问。这一流程在保障用户数据安全的前提下,实现了应用的便捷登录与数据共享。当用户在一个支持OAuth 2.0的应用上,希望使用微软账号进行登录时,OAuth 2.0授权流程即被触发。

qq_36569837的博客 4086

PostgreSQL数据库查询没有主键的表

PostgreSQL数据库查询没有主键的表 SELECT * FROM ( SELECT pc.relname , pc2.conname , pc2.contype FROM pg_catalog.pg_class pc INNER JOIN information_schema.tables t ON t.table_name = pc.relname LEFT JOIN pg_catalog.pg_constraint pc2 ON pc.oid = pc2.c

Auspicious航的博客 2887

Innovus中_clock_gen skew group的隐藏陷阱:如何避免自动分组导致的时序问题

本文深入剖析了在Innovus工具进行时钟树综合(CTS)时,`_clock_gen` skew group自动分组机制可能引发的隐蔽时序问题。文章通过实际案例,解释了该机制如何错误地将分频寄存器与配置寄存器归为一组,从而破坏时钟域边界并导致post-CTS时序违例,并提供了关闭自动提取、手动精确定义skew group等有效解决方案。

gpu4optimizer的博客 266

从零开始:MTK ISP调试中的ImagiqSimulator实战指南

本文详细介绍了MTK ISP调试中ImagiqSimulator的实战应用,从环境准备、参数加载到核心模块调整,提供全面的调试流程指南。重点讲解了DM模块参数优化技巧和常见问题解决方案,帮助工程师高效完成ISP调试工作,提升图像处理质量。

weixin_29168813的博客 486

postgresql查看哪些表没有主键

postgresql查看无主键的表 需要指定nspname=‘public’,会显示分区表还是正常的表 SELECT t.schemaname ,t.tablename,t.tableowner,t.tablespace, CASE c.relkind WHEN 'r' THEN 'table' WHEN 'v' THEN 'view' WHEN 'm' THEN 'materialized view' WHEN 'i' THEN 'index' WHEN 'S' THEN 'sequence'

weixin_42583514的博客 1517

PTA编程—币值转换

我对于这个题的主要思想就是把九位数分三块,对每块进行处理后,再合并。有了这个思想就开始写代码,后面就是哪有洞补哪,哪个测试用例没通过就对其特殊处理…。反正最后测试用例全通过了。 #include<iostream> #include <string> #include <algorithm> using namespace std; char a[10]={'a','b','c','d','e','f','g','h','i','j'}; //既然题目说了最多9位

uyo9ko的博客 990

PG获取不带主键的表

select relname from pg_class where relkind='r' and relname not like 'pg_%' except select conrelid::regclass::varchar FROM pg_constraint where contype='p';

岳麓丹枫 958

软件产品国际化:前后端及App多语言版本解决方案(超详细实现过程)

多语言版本解决方案是应对全球化趋势的关键策略,它通过构建灵活且可扩展的架构,支持软件产品在不同语言和文化环境下的顺畅运行与展示。此方案涵盖了前端多语言界面实现、后端多语言数据处理及大数据环境下的多语言支持等多个层面,确保公司能够高效地推出适应全球用户多样化需求的软件产品。在前端多语言界面实现方面,解决方案采用了国际化与本地化的结合方法。国际化过程确保软件的功能和代码设计能够处理多种语言和文化习惯,而本地化则针对特定地区进行界面和内容的调整。

大模型大数据攻城狮的专栏 2753

置顶必读(1) | 2026最新首发,全网最全 Spring Boot 学习宝典(附思维导图)

从0到1以知识点+实例+项目的教学模式对SpringBoot框架由浅入深进行学习,快来跟bug菌一起学习吧。

**My Coding Family** 16万+

postgresql 使用sql查询所有未指定主键的表

查询sql所有未指定主键的库表

我哎GIS博客 939

【Zephyr存储专题】06_存储块设备驱动开发(Nand Flash)

本文介绍了基于Zephyr系统的NAND Flash驱动实现方案,重点阐述了Flash驱动模型的核心架构和关键API设计。

zero的博客 1802

PG系统表之pg_class

pg_class记录表、索引、序列、视图等对象的信息。 pg_class 名称 类型 引用 描述 oid oid 行标识符 relname name 表、索引、视图等的名字 relnamespace oid pg_namespace.oid 包含该关系的名字空间的OID reltype oid pg_type.oid 可能存在的表行类型所对应数据类型的OID(对索引为0,索引没有pg_type项) reloftype oid pg_type.oid 对于有类型的表,为底层

雪辉博客 1万+

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

(转载)pg数据库系统表 +主键查询和设置(postgres )

今天库里需要建一张新表,需要三个字段联合作为主键。在Navicat里是可以通过点击最后一栏设置主键的。 但是我心想,一张表只有一个主键,这个1,2,3表示的是啥啊?心里有点担心的自己的主键有没有设置成功,就查了一下本张表的主键是什么。 下面这个sql语句可以显示主键的名字: SELECT pg_constraint.conname AS pk_name FROM pg_constraint INNER JOIN pg_class ON pg_constraint.conrelid = p

momo_mo520的博客 3849

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

pg 主键系统信息_PostgreSQL数据库中获取表主键名称

PostgreSQL数据库中获取表主键名称一、如下表示,要获取teacher表的主键信息:select pg_constraint.conname as pk_name,pg_attribute.attname as colname,pg_type.typname as typename frompg_constraint inner join pg_classon pg_constraint....

weixin_29440125的博客 2555

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

pg数据库表存放在哪里_pg数据库系统表

系统表部分:大多数系统表都是在数据库创建的过程中从模版数据库中拷贝过来的,因此都是数据库相关的。少数表是在整个安装中物理上所有数据库共享的;这些表在独立的表的描述中用指明了。查看数据库系统表命令\dt pg_*表名字 用途pg_aggregate 聚集函数pg_am 索引访问方法pg_amop 访问方法操作符pg_amproc 访问方法支持过程pg_attrdef 字段缺省值pg_attribu...

weixin_35822833的博客 1583

PG数据库获取表主键信息

替换为你要查询的表名,如果表位于特定的模式(schema)下,还需要将。的模式,该模式包含了许多关于数据库元数据的信息。这将显示表的列信息、索引、约束等详细信息,其中包括主键信息。如果你使用的是 psql 命令行工具,可以直接使用。PostgreSQL 还提供了一些系统表,如。,这些表可以用来查询更底层的元数据信息。PostgreSQL 提供了一个名为。命令来查看表的结构,包括主键信息。替换为你要查询的表名。替换为相应的模式名。

docuxu的博客 2939

pg 主键系统信息_PostgreSQL基础教程:系统表和系统视图

PostgreSQL基础教程:系统表和系统视图时间:2020-06-02 来源:PostgreSQL数据库与Oracle、Mysql等数据库相比,有相似之处,也有区别的地方,系统表是关系型数据库存放结构元数据的地方,比如表和字段以及内部登记信息等。PostgreSQL 的系统表就是普通表。不应该手工修改系统表,通常总有 SQL 命令可以做这些事情。比如,CREATE DATABASE 向 pg_d...

weixin_42361133的博客 1124

postgresql 数据库 系统表

postgresql 数据库 系统表 文章目录postgresql 数据库 系统表一 系统表总览二 常用系统表1.pg_class2 pg_attribute 系统表是关系型数据库存放模式元数据的地方,比如表和列的信息,以及内部统计信息等。PostgreSQL的系统表就是普通表。你可以删除并重建这些表、增加列、插入和更新数值, 然后彻底把你的系统搞垮。 通常情况下,我们不应该手工修改系统表,通常有 SQL 命令可以做这些事情。(例如, CREATE DATABASE 向 pg_database 表插入一行

yang_z_1的博客 2284

【GaussDB----系统表、系统视图】

1. 示例查询 1.在PG_TABLES系统表中查看public schema中包含的所有表。 SELECT distinct(tablename) FROM pg_tables WHERE SCHEMANAME = 'public'; 2.通过PG_USER可以查看数据库中所有用户的列表,还可以查看用户ID(USESYSID)和用户权限。 SELECT * FROM pg_user; 3.通过视图PG_STAT_ACTIVITY可以查看正在运行的查询语句。 a.当此参数为on时,数据库系统才会收集

qq_42226855的博客 1万+

openGauss 系统表:PG_INDEX

这个数组里的零表明对应的索引属性是在这个表字段上的一个表达式,而不是一个简单的字段引用。如果为true,查询不能使用索引,直到pg_index此行的xmin低于其快照的TransactionXmin,因为该表可能包含它们能看到的不兼容行断开的HOT链。对于索引键字里面的每个字段,这个字段都包含一个指向所使用的操作符类的OID,参阅pg_opclass获取细节。如果为真,表示此索引对插入数据是可用的,否则,在插入或修改数据时忽略此索引。如果为真,则此索引的列成为逻辑解码的解码列。

weixin_53596073的博客 1070

openGauss 系统表:PG_CONSTRAINT

如果是一个外键,是做FK=FK比较的相等操作符ID的列表。PG_CONSTRAINT系统表存储表上的检查约束、主键和唯一约束。如果是一个外键,是做PK=FK比较的相等操作符ID的列表。如果是一个外键,是做PK=PK比较的相等操作符ID的列表。如果是一个排他约束,是列的排他操作符ID列表。如果是检查约束,那就是其表达式的内部形式。如果是检查约束,则是表达式的人类可读形式。如果是表约束,则是约束控制的字段列表。如果是外键,则为参考的表;如果是一个外键,是参考的字段的列表。包含这个约束的名称空间的OID。

weixin_53596073的博客 763

pg 主键系统信息_PostgreSQL教程(十五):系统表详解

一、pg_class:该系统表记录了数据表、索引(仍然需要参阅pg_index)、序列、视图、复合类型和一些特殊关系类型的元数据。注意:不是所有字段对所有对象类型都有意义。名字类型引用描述relnamename数据类型名字。relnamespaceoidpg_namespace.oid包含这个对象的名字空间(模式)的OI。reltypeoidpg_type.oid对应这个表的行类型的数据类型。re...

weixin_42491886的博客 1185
上一篇: windows环境下部署docker项目,手把手教学
下一篇: ‘chromedriver‘ executable needs to be in PATH解决办法
quantam
博客等级 码龄9年 78粉丝 36原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值