PostgreSQL 系统表

 1 # PostgreSQL 系统表
 2 
 3 pg_class表记录了数据库中的表、索引、视图之间的关系
 4 # 一些字段:
 5 # relname 表,索引,视图等的名字。
 6 # relnamespace 包含这个关系的名字空间(模式)的 OID,对应pg_namespace.oid
 7 # relkind r = 普通表,i = 索引,S = 序列,v = 视图, c = 复合类型,s = 特殊,t = TOAST表
 8 
 9 
10 pg_namespace表记录了数据库的名字空间(模式)
11 # 一些字段:
12 # nspname 名字空间的名字
13 # nspowner 名字空间的所有者
14 
15 pg_attribute表记录了数据库关于表的字段的信息
16 # 一些字段:
17 # attrelid 此列/字段所属的表,对应于pg_class.oid
18 # attname 字段名字
19 # atttypid 这个字段的数据类型,对应于pg_type.oid
20 # attlen 对于定长类型,typlen是该类型内部表现形式的字节数目。 对于变长类型,typlen 是负数。 -1 表示一种"变长"类型(有长度字属性的数据), -2 表示这是一个 NULL 结尾的 C 字串。是本字段类型 pg_type.typlen 的拷贝。
21 # attnum 字段数目。普通字段是从 1 开始计数的。系统字段, 比如 oid, 有(任意)正数。
22 # atttypmod atttypmod 元组在创建表的时候 提供的类型相关的数据(比如,一个 varchar 字段的最大长度)。 它传递给类型相关的输入和长度转换函数当做第三个参数。 其值对那些不需要 atttypmod 的类型而言通常为 -1。
23 # attnotnull 这代表一个非空约束。我们可以改变这个字段以打开或者关闭这个约束。
24 # attisdropped 这个字段已经被删除了,不再有效。
25 
26 pg_type表记录了数据库有关数据类型的信息
27 # 一些字段:
28 # typname 数据类型名字
29 # typlen 对于定长类型,typlen是该类型内部表现形式的字节数目。 对于变长类型,typlen 是负数。 -1 表示一种"变长"类型(有长度字属性的数据), -2 表示这是一个 NULL 结尾的 C 字串。
30 
31 pg_description表记录了数据库中对象(表、字段等)的注释。
32 # 一些字段:
33 # objoid 这条描述所描述的对象的 OID。如果这条注释是一个表或表中字段的注释,那么,该值对应于pg_class.oid
34 # objsubid 对于一个表字段的注释,它是字段号,对应于pg_attribute.attnum。对于其它对象类型,它是零。
35 # description 作为对该对象的描述的任意文本
36 
37 # 查某个表的所有字段名&字段类型&注释
38 select
39     col.table_catalog,
40     col.table_schema,
41     col.ordinal_position,
42     col.table_name as 表名,
43     col.column_name as 字段名,
44     col.data_type as 字段类型,
45     coalesce(col.character_maximum_length, col.numeric_precision) columnLength,
46     col.numeric_scale numericScaleLength,
47     des.description as 字段描述
48 from
49     information_schema.columns col
50 left join pg_description des on
51     col.table_name::regclass = des.objoid
52     and col.ordinal_position = des.objsubid
53 where
54     table_schema = 'public'
55     and table_name like 'table_name'
56 order by
57     col.table_name,
58     col.ordinal_position ;
59 
60 # 查询表
61 select table_name from information_schema.tables where table_name like '%study_%';
62 
63 # 查询表的注释
64 select description
65   from pg_class, pg_description
66   where relname='tablename' and pg_class.oid = pg_description.objoid and objsubid=0
67 
68 # 查询当前开启的事务数量
69 SELECT COUNT(*) AS active_transactions
70 FROM pg_stat_activity
71 WHERE state != 'idle';
72 
73 # 查询当前连接的数量
74 SELECT COUNT(*) AS total_connections
75 FROM pg_stat_activity;

 

posted @ 2021-11-15 13:22  看一百次夜空里的深蓝  阅读(487)  评论(0编辑  收藏  举报