相关文章推荐
深情的楼房  ·  低端卡通通倒下 古墓丽影新作详细试玩_手机新浪网·  1 年前    · 
刚毅的刺猬  ·  体坛最富老板:曼城老板仅排第8 ...·  1 年前    · 
爱运动的皮蛋  ·  动漫苍兰诀超燃_苍兰诀漫画在哪里看_苍兰诀1 ...·  2 年前    · 
英俊的山楂  ·  原神日服因日元大幅贬值导致氪金涨价,未来人民 ...·  2 年前    · 
温暖的煎饼  ·  乌鲁木齐规定:禁止在公共场所穿戴蒙面罩袍·  2 年前    · 
Code  ›  获取postgresql数据字典开发者社区
大数据 postgresql 数据字典
https://cloud.tencent.com/developer/article/2191580?areaSource=&traceId=
纯真的柠檬
2 年前
作者头像
python与大数据分析
0 篇文章

获取postgresql数据字典

前往专栏
腾讯云
开发者社区
文档 意见反馈 控制台
首页
学习
活动
专区
工具
TVP
文章/答案/技术大牛
发布
首页
学习
活动
专区
工具
TVP
返回腾讯云官网
社区首页 > 专栏 > python与大数据分析 > 获取postgresql数据字典

获取postgresql数据字典

作者头像
python与大数据分析
发布 于 2022-12-13 09:49:35
459 0
发布 于 2022-12-13 09:49:35
举报

想实现一个通用的元数据,从postgresql入手,在网文的基础上增加了一些字段信息,字段元数据主要包括表名、字段名、字段顺序、字段类型、字段全类型、字段长度、数值字段长度、数值字段精度、字段备注等等。

虽然还可以叠加很多比如索引、外键等等

SELECT
pc.relname AS tableName,
    pa.attname AS columnName,
    pa.attnum AS columnorder,
    pt.typname AS columnType,
    concat_ws(
        pt.typname,
        SUBSTRING(
            format_type(pa.atttypid, pa.atttypmod) from '\(.*\)'
    ) as 列类型, (CASE WHEN pa.attlen > 0 THEN pa.attlen ELSE pa.atttypmod -
        4 END) AS columnLength,
    pa.attnotnull AS isNullAble, (CASE WHEN(SELECT COUNT( * ) FROM pg_constraint WHERE conrelid =
        pa.attrelid AND conkey[1] = attnum AND contype = 'p') > 0 THEN TRUE ELSE FALSE END) AS isPrimary,
    pd.description AS columnDescription,
    CASE atttypid
      WHEN 21 /*int2*/ THEN 16
      WHEN 23 /*int4*/ THEN 32
      WHEN 20 /*int8*/ THEN 64
      WHEN 1700 /*numeric*/ THEN
    CASE WHEN atttypmod = -1
      THEN null
      ELSE((atttypmod - 4) >> 16) & 65535--calculate the precision
      WHEN 700 /*float4*/ THEN 24 /*FLT_MANT_DIG*/
      WHEN 701 /*float8*/ THEN 53 /*DBL_MANT_DIG*/
      ELSE null
      END AS numeric_precision,
      WHEN atttypid IN(21, 23, 20) THEN 0
      WHEN atttypid IN(1700) THEN
      WHEN atttypmod = -1 THEN null
      ELSE(atttypmod - 4) & 65535--calculate the scale
      ELSE null
      END AS numeric_scale
  pg_class pc,
  pg_attribute pa,
  pg_type pt,
  pg_description pd

 
推荐文章
深情的楼房  ·  低端卡通通倒下 古墓丽影新作详细试玩_手机新浪网
1 年前
刚毅的刺猬  ·  体坛最富老板:曼城老板仅排第8 巴黎老板没上榜|足球|切尔西队|曼苏尔_网易体育
1 年前
爱运动的皮蛋  ·  动漫苍兰诀超燃_苍兰诀漫画在哪里看_苍兰诀12个名场面 - 抖音
2 年前
英俊的山楂  ·  原神日服因日元大幅贬值导致氪金涨价,未来人民币大幅贬值时米哈游是否会对国服涨价? - 知乎
2 年前
温暖的煎饼  ·  乌鲁木齐规定:禁止在公共场所穿戴蒙面罩袍
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号