Postgre查询 表的结构(数据字典)

SELECT 
	A.attnum AS "序号",
	C.relname AS "表名",
	CAST ( obj_description ( relfilenode, 'pg_class' ) AS VARCHAR ) AS "表名描述",
	A.attname AS "字段名",
	T.typname AS "类型",
		CASE when
		SUBSTRING ( format_type ( A.atttypid, A.atttypmod ) FROM '\(.*\)' ) isNUll
		then '0'
	else
	substr(SUBSTRING ( format_type ( A.atttypid, A.atttypmod ) FROM '\(.*\)' ),2,CHAR_LENGTH(SUBSTRING ( format_type ( A.atttypid, A.atttypmod ) FROM '\(.*\)' ))-2)
	end as "长度",
CASE
		A.attnotnull 
		WHEN 't' THEN
		'是' 
		WHEN 'f' THEN
		'否' 
	END AS 不是null,
	CASE
		A.attnotnull 
		WHEN 't' THEN
		'是' 
	END AS "主键",
	d.description AS "注释" 
FROM
	pg_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

在这里插入图片描述

CAST ( obj_description ( relfilenode, 'pg_class' ) AS VARCHAR ) AS cc
//存在一个小坑,在重新编辑表字段的时候pg_class中的relfilenode值会发生改变,在根据node去转移描述会产生null ,
注意---可以将relfilenode切换为pg_class表中的oid字段,来对应原始的描述翻译
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值