• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Postgresql 实现查询一个表/所有表的所有列名

    假设postgres有数据库testdb

    在testdb下执行下列sql语句,得到所有表的信息

    select * from information_schema.columns 
    where table_schema='public' and table_name>'pg_stat_statements';

    在testdb下执行下列sql语句,得到所有表的列名

    select column_name from information_schema.columns 
    where table_schema='public' and table_name>'pg_stat_statements';

    在testdb下执行下列sql语句,得到表"table"的列名

    select column_name from information_schema.columns 
    where table_schema='public' and table_name='table';

    补充: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

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

    您可能感兴趣的文章:
    • 查询PostgreSQL占多大内存的操作
    • Postgresql通过查询进行更新的操作
    • postgresql 实现查询某时间区间的所有日期案例
    • PostgreSQL 分页查询时间的2种比较方法小结
    • postgresql通过索引优化查询速度操作
    • postgresql查询锁表以及解除锁表操作
    • postgresql数据库根据年月查询出本月的所有数据操作
    • PostgreSQL 实现查询表字段信息SQL脚本
    上一篇:PostgreSQL 查找当前数据库的所有表操作
    下一篇:postgresql数据库根据年月查询出本月的所有数据操作
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Postgresql 实现查询一个表/所有表的所有列名 Postgresql,实现,查询,一个,