• 企业400电话
  • 网络优化推广
  • AI电话机器人
  • 呼叫中心
  • 全 部 栏 目

    网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    PostgreSQL 查找当前数据库的所有表操作
    POST TIME:2021-10-18 23:09

    实现的功能类似MySQL:

    show tables;

    在 PostgreSQL 中需要写:

    select * from pg_tables where schemaname = 'public';

    返回结果类似如下:

    schemaname | tablename | tableowner | tablespace | hasindexes | hasrules | hastriggers | rowsecurity 
    ------------+-----------+------------+------------+------------+----------+-------------+-------------
     public  | deploy | postgres |   | t   | f  | f   | f
     public  | deploy2 | postgres |   | f   | f  | f   | f
    (2 rows)

    补充:PostgreSql 获取所有的表、视图、字段、 主键

    PostgreSQL获取数据库中所有view名 视图:

    SELECT viewname FROM pg_views 
    WHERE  schemaname ='public' 

    postgreSQL获取数据库中所有table名 表:

    SELECT tablename FROM pg_tables 
    WHERE tablename NOT LIKE 'pg%' 
    AND tablename NOT LIKE 'sql_%'
    ORDER BY tablename;

    postgreSQL获取某个表tablename 所有字段名称 , 类型,备注,是否为空 等

    SELECT col_description(a.attrelid,a.attnum) as comment,pg_type.typname as typename,a.attname as name, a.attnotnull as notnull
    FROM pg_class as c,pg_attribute as a inner join pg_type on pg_type.oid = a.atttypid
    where c.relname = 'tablename' and a.attrelid = c.oid and a.attnum>0

    postgreSQL获取某个表tablename 的主键信息

    select pg_attribute.attname as colname,pg_type.typname as typename,pg_constraint.conname as pk_name from 
    pg_constraint inner join pg_class 
    on pg_constraint.conrelid = pg_class.oid 
    inner join pg_attribute on pg_attribute.attrelid = pg_class.oid 
    and pg_attribute.attnum = pg_constraint.conkey[1]
    inner join pg_type on pg_type.oid = pg_attribute.atttypid
    where pg_class.relname = 'tablename' 
    and pg_constraint.contype='p'

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

    您可能感兴趣的文章:
    • PostgreSQL 自动Vacuum配置方式
    • PHP实现从PostgreSQL数据库检索数据分页显示及根据条件查找数据示例
    • PostgreSQL 如何查找需要收集的vacuum 表信息
    上一篇:PostgreSQL COALESCE使用方法代码解析
    下一篇:Postgresql 实现查询一个表/所有表的所有列名
  • 相关文章
  • 

    关于我们 | 付款方式 | 荣誉资质 | 业务提交 | 代理合作


    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    X

    截屏,微信识别二维码

    微信号:veteran88

    (点击微信号复制,添加好友)

     打开微信