PostgreSql 获取表的字段多主键备注

SELECT 
 A.table_schema,
 A."table_name",
  A.ordinal_position,
	A.COLUMN_NAME,
CASE
		A.is_nullable 
		WHEN 'NO' THEN
		0 ELSE 1 
	END AS is_nullable,
	A.data_type,
	COALESCE ( A.character_maximum_length, A.numeric_precision, - 1 ) AS LENGTH,
	A.numeric_scale,
CASE	
		WHEN LENGTH ( B.attname ) > 0 THEN
		1 ELSE 0 
	END AS is_pk,
	des.description 
FROM
	information_schema.
	COLUMNS A LEFT JOIN pg_description des ON A.TABLE_NAME :: regclass = des.objoid 
	AND A.ordinal_position = des.objsubid
	LEFT JOIN (
	SELECT
		pg_attribute.attname,
		pg_class 
	FROM
		pg_index,
		pg_class,
		pg_attribute 
	WHERE
		pg_class.oid = 'dic_operation' :: regclass 
		AND pg_index.indrelid = pg_class.oid 
		AND pg_attribute.attrelid = pg_class.oid 
		AND pg_attribute.attnum = ANY ( pg_index.indkey ) 
	) B ON A.COLUMN_NAME = b.attname 
WHERE
	A.table_schema = 'drg' 
	AND A.TABLE_NAME = 'dic_operation' 
ORDER BY
	ordinal_position ASC;	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值