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

Postgresql 表结构、列名相关信息查询

SELECT A.attnum AS "序号",C.relname AS "表名",CAST ( obj_description ( relfilenode, 'pg_class' ) AS VARCHAR ) AS "表名描述",A.attname AS "字段名",T.typname AS "类型",CASE whenSUBSTRING ( format_type ( A.atttypid, A.atttypmod ) FROM '\(.*\)' ) isNUllthen '0'elsesubstr(SUBSTRING ( format_type ( A.atttypid, A.atttypmod ) FROM '\(.*\)' ),2,CHAR_LENGTH(SUBSTRING ( format_type ( A.atttypid, A.atttypmod ) FROM '\(.*\)' ))-2)end as "长度",
CASEA.attnotnull WHEN 't' THEN'是' WHEN 'f' THEN'否' END AS 不是null,CASEA.attnotnull WHEN 't' THEN'是' END AS "主键",d.description AS "注释" 
FROMpg_class C,pg_attribute A,pg_type T,pg_description d 
WHERE
-- 表名C.relname = 'j_auditing'  AND A.attnum > 0 AND A.attrelid = C.oid AND A.atttypid = T.oid AND d.objoid = A.attrelid AND d.objsubid = A.attnum
————————————————

2. 使用information_schema.columns视图

在SQL查询中,你可以通过查询information_schema.columns视图来获取表的结构信息。例如:

SELECT column_name, data_type, is_nullable, column_default
FROM information_schema.columns
WHERE table_name = 'your_table_name';

 注意:使用table_name = 'your_table_name'时,如果你的表名是大写的,你也需要确保在查询时使用大写,或者使用双引号将表名括起来,并确保查询时的大小写与表的实际大小写一致。例如:

SELECT column_name, data_type, is_nullable, column_default
FROM information_schema.columns
WHERE table_name = 'your_table_name' -- 确保大小写一致或使用双引号

3.使用pg_catalog.pg_attributepg_catalog.pg_class

对于更高级的查询或者当你需要更详细的信息时,你可以直接查询pg_catalog.pg_attributepg_catalog.pg_class表。例如:

SELECT a.attname AS column_name,pg_catalog.format_type(a.atttypid, a.atttypmod) AS data_type,a.attnotnull AS is_not_null,(SELECT pg_catalog.pg_get_expr(d.adbin, d.adrelid) FROM pg_catalog.pg_attrdef d WHERE d.adrelid = a.attrelid AND d.adnum = a.attnum AND a.atthasdef) AS column_default
FROM pg_catalog.pg_attribute a
JOIN pg_catalog.pg_class c ON a.attrelid = c.oid
WHERE c.relname = 'your_table_name' AND a.attnum > 0 AND NOT a.attisdropped
ORDER BY a.attnum;

http://www.lryc.cn/news/572741.html

相关文章:

  • Unix、Linux、POSIX、Minix 区别与联系
  • 小菜狗的云计算之旅,shell脚本语言的基本内容和用法
  • wireshark过滤显示rtmp协议
  • 服务器获取外网IP,并发送到钉钉
  • 力扣-136.只出现一次的数字
  • 【MATLAB代码】制导方法介绍与例程——追踪法,适用于二维平面,目标是移动的|附完整源代码
  • java项目打包成jar包,并给jmeter使用
  • Lora训练
  • Maven 之工程化开发核心指南:插件配置、pom 文件与依赖管理
  • 一生一芯 PA2 RTFSC
  • Nginx-Ingress-Controller自定义端口实现TCP/UDP转发
  • js 生成过控制点的曲线
  • 数据库part2---子查询
  • 学习笔记丨AR≠VR:透视沉浸式技术的“虚实象限”法则
  • JuiceFS 集群部署详细指南:使用 SeaweedFS 作为数据存储,ETCD 作为元数据存储
  • Redis如何解决缓存击穿,缓存雪崩,缓存穿透
  • Unity技能编辑器深度构建指南:打造专业级战斗系统
  • Pycharm中Jupyter Notebook 插件常用快捷键
  • 1.21SQLCipher 简介
  • Flutter Hero 组件详解及应用
  • window显示驱动开发—输出合并器阶段
  • 企业级权限按钮高效实现方案
  • JS红宝书笔记 8.4 类
  • Spring Boot自动配置原理
  • 三种经典算法无人机三维路径规划对比(SMA、HHO、GWO三种算法),Matlab代码实现
  • 新能源汽车换电站需求大爆发,光储充微电网解决方案为换电运维提供“智慧大脑”
  • 一个用于记录和存储 H.264 视频帧的工具类
  • 【精选】基于SpringBoot的宠物互助服务小程序平台开发 微信小程序宠物互助系统 宠物互助小程序平台设计与实现 支持救助发布+领养申请+交流互动功能
  • 基于微信小程序的美食点餐订餐系统
  • OPENGLPG第九版学习 - 纹理与帧缓存 part1