加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何通过plpgsql从Postgres获取表的主键?

发布时间:2020-12-13 16:37:28 所属栏目:百科 来源:网络整理
导读:给定一个表名,如何从plpgsql函数中提取主键列及其数据类型的列表? 上面的查询是非常糟糕的,因为它真的很慢。 我会推荐这个官方版本: http://wiki.postgresql.org/wiki/Retrieve_primary_key_columns 如果需要模式,查询如下 SELECT pg_attribute.attname
给定一个表名,如何从plpgsql函数中提取主键列及其数据类型的列表?
上面的查询是非常糟糕的,因为它真的很慢。

我会推荐这个官方版本:

http://wiki.postgresql.org/wiki/Retrieve_primary_key_columns

如果需要模式,查询如下

SELECT               
  pg_attribute.attname,format_type(pg_attribute.atttypid,pg_attribute.atttypmod) 
FROM pg_index,pg_class,pg_attribute,pg_namespace 
WHERE 
  pg_class.oid = 'foo'::regclass AND 
  indrelid = pg_class.oid AND 
  nspname = 'public' AND 
  pg_class.relnamespace = pg_namespace.oid AND 
  pg_attribute.attrelid = pg_class.oid AND 
  pg_attribute.attnum = any(pg_index.indkey)
 AND indisprimary

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读