zoukankan      html  css  js  c++  java
  • PostgreSql数据库查询表信息/列信息(列ID/列名/数据类型/长度/精度/是否可以为null/默认值/是否自增/是否是主键/列描述)

    查询表信息(表名/表描述)

    select a.relname as name , b.description as value from pg_class a 
    left join (select * from pg_description where objsubid =0 ) b on a.oid = b.objoid
    where a.relname in (select tablename from pg_tables where schemaname = 'public')
    order by a.relname asc

    查询列信息(列ID/列名/数据类型/长度/精度/是否可以为null/默认值/是否自增/是否是主键/列描述)

    select ordinal_position as Colorder,column_name as ColumnName,data_type as TypeName,
    coalesce(character_maximum_length,numeric_precision,-1) as Length,numeric_scale as Scale,
    case is_nullable when 'NO' then 0 else 1 end as CanNull,column_default as DefaultVal,
    case  when position('nextval' in column_default)>0 then 1 else 0 end as IsIdentity, 
    case when b.pk_name is null then 0 else 1 end as IsPK,c.DeText
    from information_schema.columns 
    left join (
        select pg_attr.attname as colname,pg_constraint.conname as pk_name from pg_constraint  
        inner join pg_class on pg_constraint.conrelid = pg_class.oid 
        inner join pg_attribute pg_attr on pg_attr.attrelid = pg_class.oid and  pg_attr.attnum = pg_constraint.conkey[1] 
        inner join pg_type on pg_type.oid = pg_attr.atttypid
        where pg_class.relname = '表名' and pg_constraint.contype='p' 
    ) b on b.colname = information_schema.columns.column_name
    left join (
        select attname,description as DeText from pg_class
        left join pg_attribute pg_attr on pg_attr.attrelid= pg_class.oid
        left join pg_description pg_desc on pg_desc.objoid = pg_attr.attrelid and pg_desc.objsubid=pg_attr.attnum
        where pg_attr.attnum>0 and pg_attr.attrelid=pg_class.oid and pg_class.relname='表名'
    )c on c.attname = information_schema.columns.column_name
    where table_schema='public' and table_name='表名' order by ordinal_position asc
  • 相关阅读:
    Windows 10安装Docker并使用私钥连接AWS EC2
    Logback中%X的使用
    使用CompletableFuture+ExecutorService+Logback的多线程测试
    Spring Boot与Spring Session集成
    Java 8中Collection转为Map的方法
    记一次OutOfMemory定位过程-续
    记一次OutOfMemory定位过程
    Jmeter学习之While Controller
    使用VirtualBox虚拟机搭建局域网(续)
    Java 8的Lambda学习
  • 原文地址:https://www.cnblogs.com/lztkdr/p/PostgreSQL_Table_Column_Info.html
Copyright © 2011-2022 走看看