数码资讯
PostgreSQL教程(十五):该系统表的详细解决方案
1。pg_class: 系统表记录元数据的数据表,索引(还看到pg_index)、序列、视图、复合类型,和一些特殊的关系类型。注意:并不是所有的领域都是有意义的对象类型。 名称 类型 引用 描述 relname 名称 数据类型的名称。 relnamespace OID pg_namespace.oi
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
1。pg_class:
系统表记录元数据的数据表,索引(还看到pg_index)、序列、视图、复合类型,和一些特殊的关系类型。注意:并不是所有的领域都是有意义的对象类型。
名称
类型
引用
描述
relname
名称
数据类型的名称。
relnamespace
OID
pg_namespace.oid
包含对象名称空间(模式)的OI。
reltype
OID
pg_type.oid
与该表的行类型相对应的数据类型。
relowner
OID
pg_authid.oid
对象的所有者。
领域
OID
pg_am.oid
对于索引对象,它代表了指数型(B树、哈希)。
relfilenode
OID
对象以文件名存储在磁盘上,如果不是0的话。
reltablespace
OID
pg_tablespace.oid
对象所在的表空间。如果为零,则为数据库使用默认表空间。(如果对象没有磁盘上的文件,则此字段没有意义)
relpages
INT4
数据表或索引占用的磁盘页面数,查询规划人员根据值选择最佳路径。
reltuples
float4
表中的行数,这仅仅是计划者使用的估计值。
reltoastrelid
OID
pg_class.oid
与此表相关的土司表OID如果不是不是0。敬酒表店大领域离线在从属的形式。
reltoastidxid
OID
pg_class.oid
如果是吐司表,字段是OID的指数,如果它不是面包表,它是0。
relhasindex
布尔
如果这是一个数据表和至少(或最近)的一个指标,这是真的。它是由创建索引,但索引不清楚它。如果真空发现表没有索引,它清除relhasindex。
relisshared
布尔
如果整个集群中的所有数据库共享该表,那么它是正确的。
relkind
烧焦
r =普通表,i =索引,s =序列,v =视图,C =复合类型,s =特殊,T =吐司表
relnatts
T2
在数据表的用户字段数(除系统领域,如OID)。必须在pg_attribute.see pg_attribute.attnum相同数据的行数。
relchecks
T2
检查表中的约束条件的数量,是指pg_constraint表。
reltriggers
T2
表中的触发器的数量;指pg_trigger表。
relhasoids
布尔
如果我们生成对象中每个线的老,这是真的。
relhaspkey
布尔
如果表有主键,那么它是真的。
relhasrules
布尔
如果表中有一个规则,看pg_rewrite表。
relhassubclass
布尔
如果表中有一个数据库,它是真的。
relacl
aclitem { }
访问权限。
请参见下面的应用示例:
复制代码代码如下所示:
#查看指定表数据对象模型
Postgres = #选择relname,relnamespace,从pg_class C nspname,pg_namespace N relname =得到;
relname relnamespace nspname | |
------------- + -------------- + ---------
公共数据| 2200 |
(1行)
#视图指定的数据表对象的所有者(作用)。
Postgres = #选择relname,从pg_class C rolname,pg_authid金relname = 'testtable= 'testtable;
relname rolname |
------------- + ----------
数据| Postgres
(1行)
二,pg_attribute:
所有表的系统表存储字段的信息,包括系统表,如数据库中的表pg_class.each领域已经在pg_attribute表中的一行记录。
名称
类型
引用
描述
attrelid
OID
pg_class.oid
这个字段属于的表。
attname
名称
字段名称。
atttypid
OID
pg_type.oid
字段的数据类型。
attstattarget
INT4
的attstattarget控件设置的详细程度对这一领域的统计分析。零值表示没有统计信息的收集,与负数为统计对象,采用系统默认。积极价值的准确信息是数据类型有关。
attlen
T2
那这场属于类型的长度。(本pg_type。typlen)
attnum
T2
字段的数量,一般的场数从1。系统领域,如旧,是一个任意的负数。
attndims
INT4
如果字段是数组,则该值表示数组的维数,否则为0。
attcacheoff
INT4
它总是在磁盘上为1,但是如果它被加载到内存中的行描述符中,它可能会更新到行中字段中的偏移量。
atttypmod
INT4
它代表了数据表提供的类型创建时(例如,最大长度的varchar字段)的值通常是1类,不需要atttypmod。
attbyval
布尔
本pg_type.typbyval字段的值。
attstorage
烧焦
本pg_type.typstorage字段的值。
attalign
烧焦
本pg_type.typalign字段的值。
attnotnull
布尔
如果字段具有非空约束,则为true,否则为false。
atthasdef
布尔
如果在这个领域有一个默认值,它对应的记录,实际上定义了价值的pg_attrdef形式。
attisdropped
布尔
该字段是否已被删除。如果删除该字段,该字段仍在物理表中,但它将被解析器忽略,因此无法通过SQL访问它。
attislocal
布尔
这个字段是否在对象中本地定义。
attinhcount
INT4
字段拥有的直接祖先数。如果字段的祖先的数目不是零,则不能删除或重命名它。
请参见下面的应用示例:
复制代码代码如下所示:
#查看指定的字段的名称和数量表包含。
Postgres = #选择relname,attname,attnum从pg_class C,pg_attribute属性,relname =得到;
relname attname attnum | |
------------- + ---------- + --------
数据tableoid - 7 | |
数据| | Cmax - 6
数据| | Xmax - 5
数据4 | | Cmin
数据| | xmin - 3
1 | | Grid数据
我| |数据1
(7行)
#只查看用户定义类型的字段
Postgres = #选择relname,attname,typname从pg_class C,pg_attribute,pg_type,pg_attribute,relname = 0。
relname attname typname | |
------------- + ---------- + ---------
我| | INT4数据
(7行)
三、pg_attrdef:
系统表主要存储字段的默认值,并在该领域的主要信息存储在pg_attribute系统表。注意:只有字段声明的默认值将被记录在表格中。
名称
类型
引用
描述
adrelid
OID
pg_class.oid
这个字段属于的表
管理杂志
T2
pg_attribute.attnum
场数,其规则是相当于pg_attribute.attnum
adbin
文本
字段默认值的内部表示形式。
adsrc
文本
默认值的人类可读表达式的形式。
请参见下面的应用示例:
复制代码代码如下所示:
#视图指定表的字段存在默认值,也显示字段名称和默认值定义
Postgres = #创建表testtable2(我的整数,默认为100);
创建表
Postgres = #选择c.relname,a.attname,ad.adnum,从pg_class C,pg_attribute一ad.adsrc,和C的pg_attribute等于零比零。
relname attname管理杂志adsrc | | |
------------- + ---------- + --------- + -------
testtable2我| | 1 | 100
(1行)
四、pg_authid:
系统表存储有关数据库身份验证的角色信息。在PostgreSQL,角色可以为用户和组的两种形式。对于用户来说,唯一的rolcanlogin旗的作用是集。因为表包含密码的数据,这是不公开的可读性。在PostgreSQL,另一个系统的观点,pg_roles,是建立在顶部的表,使密码字段空白。
名称
类型
引用
描述
rolname
名称
角色名。
rolsuper
布尔
角色是否有超级用户权限。
rolcreaterole
布尔
角色是否可以创建其他角色。
rolcreatedb
布尔
角色是否可以创建数据库。
rolcatupdate
布尔
一个角色是否可以直接更新系统表(如果设置为false,即使是超级用户无法更新系统表)。
rolcanlogin
布尔
是否可以登录角色,换句话说,是否可以将角色授予会话身份验证标识符。
rolpassword
文本
密码(可能是加密的);如果不是,则为空。
rolvaliduntil
timestamptz
密码失效时间(仅用于密码身份验证);如果没有故障期,则为空。
rolconfig
文本{ }
运行时配置变量的会话默认值。
请参见下面的应用示例:
复制代码代码如下所示:
#可以从这个密码已加密的结果输出。
Postgres = #选择rolname,rolpassword从pg_authid;
Rolname rolpassword |
----------- + -------------------------------------
md5a3556571e93b0d20722ba62be61e8c2d | Postgres
五、pg_auth_members:
系统表存储角色之间的成员关系。
名称
类型
引用
描述
roleid
OID
pg_authid.oid
组角色的id。
成员
OID
pg_authid.oid
身份证,属于该组的作用roleid成员角色。
让与人
OID
pg_authid.oid
id提供该成员关系的角色。
admin_option
布尔
如果您有权限向组角色添加其他成员角色,则为真。
请参见下面的应用示例:
复制代码代码如下所示:
# 1。首先查看角色成员表中角色之间的成员关系,只有一个成员角色是当前结果集中的一个组角色的一部分。
#如果有成员属于同一组人物的多重角色,所以会有一批记录。
Postgres = # SELECT * FROM pg_auth_members;
roleid成员授予人admin_option | | |
-------- + -------- + --------- + --------------
16446 | 16445 | 10 | F
(1行)
# 2。查看组角色的名称。
Postgres = #选择pg_authid一rolname,pg_auth_members是a.oid = am.roleid;
rolname
—
mygroup
(1行)
# 3。查看成员角色的名称。
如果# 4。需要使用结果集获得角色之间的隶属关系,这两个结果集可以关联子查询。
Postgres = #选择pg_authid一rolname,pg_auth_members是a.oid = am.member;
rolname
—
中
(1行)
六、pg_constraint:
系统表店检查约束、主键、唯一约束,并在PostgreSQL的表对象的外键约束。
名称
类型
引用
描述
conname
名称
名称的约束(不一定是唯一的)。
connamespace
OID
pg_namespace.oid
包含命名空间的OID(模式)这种约束。
contype
烧焦
c =检查约束,f =外部键约束,p =主键约束,u =唯一约束
condeferrable
布尔
约束是否可以推迟。
condeferred
布尔
这个约束在短时间内被延迟了吗
conrelid
OID
pg_class.oid
约束所在的表如果不是表约束,则为0。
contypid
OID
pg_type.oid
如果约束不是域约束,则该约束所在的域为0。
confrelid
OID
pg_class.oid
如果是外键,则指向参考表,否则为0。
confupdtype
烧焦
外键更新动作代码。
confdeltype
烧焦
外部键删除操作代码。
confmatchtype
烧焦
外键匹配的类型。
12:
INT2 { }
pg_attribute.attnum
如果它是一个表约束,则它是约束控件中的字段列表。
confkey
INT2 { }
pg_attribute.attnum
如果是外键,则是引用字段列表。
伴血肿
文本
如果检查了约束,则表示表达式的内部形式。
consrc
文本
如果检查了约束,它就是表达式的可读形式。
七、pg_tablespace:
系统将表空间的信息表列出。注意:表可以放在一个特定的表空间中,有助于管理磁盘布局和解决IO瓶颈。
名称
类型
引用
描述
spcname
名称
表空间的名称。
spcowner
OID
pg_authid.oid
表空间的所有者,通常是创建它的角色。
spclocation
文本
表空间的位置(目录路径)。
spcacl
aclitem { }
访问权限。
请参见下面的应用示例:
复制代码代码如下所示:
# 1。创建表空间。
Postgres = #创建表空间my_tablespace位置 / / /选择PostgreSQL 9.1 /该;
创建表空间
# 2。将新表空间的创建权限公开。
Postgres=# GRANT CREATE ON TABLESPACE my_tablespace TO public;
格兰特
# 3。查看系统中用户自定义表空间的名称、文件的位置以及创建它的角色的名称。
两表空间(pg_default和pg_global)被创建时自动# 4。创建的系统是空的(不是空的)。
Postgres = #选择spcname,rolname spclocation,从pg_tablespace TS,pg_authid在ts.spcowner = a.oid和spclocation <>;
spcname rolname spclocation | |
--------------- + ---------- + ----------------------------
my_tablespace Postgres / / /选择PostgreSQL 9.1 / MYDATA | |
(1行)
八、pg_namespace:
系统表存储名称空间(模式)。
名称
类型
引用
描述
nspname
名称
名称空间(模式)的名称。
nspowner
OID
pg_authid.oid
命名空间的所有者(模式)
nspacl
aclitem { }
访问权限。
请参见下面的应用示例:
复制代码代码如下所示:
对公共模型#查看当前数据库创建者的名字。
Postgres = #选择nspname,从pg_namespace N rolname,pg_authid在nspname =征收征收;
Nspname rolname |
---------- + ----------
公共Postgres |
(1行)
九、pg_database:
系统表存储了数据库中的信息。不像大多数的系统表,在集群中,桌上的所有数据库,这是共享的,每个集群都有一个pg_database复制而不是一个数据库。
名称
类型
引用
描述
datname
名称
数据库的名称。
datdba
OID
pg_authid.oid
数据库所有者,通常是创建数据库的角色。
编码
INT4
数据库的字符编码方法。
datistemplate
布尔
如果是真的,则该数据库可用于创建数据库模板子句,以便为该数据库的克隆创建一个新数据库。
datallowconn
布尔
如果它是假的,没有人可以加入这个数据库。
datlastsysoid
OID
避免在数据库中,最后的系统,为pg_dump特别有用。
datvacuumxid
XID
datfrozenxid
XID
dattablespace
文本
pg_tablespace.oid
对于数据库的默认表空间。在这个数据库中,所有的pg_class.reltablespace零表将被保存在该表空间,特别指出,所有的非共享的系统表也存放在这里。
datconfig
文本{ }
运行时配置变量的会话默认值。
datacl
aclitem { }
访问权限。
十、pg_index:
系统表存储的索引信息的一部分,其他大部分信息存储在pg_class。
名称
类型
引用
描述
indexrelid
OID
pg_class.oid
该指数在pg_class是OID。
indrelid
OID
pg_class.oid
这个记录在索引的表的pg_class OID。
indnatts
T2
索引中的字段数(一个副本的pg_class。relnatts)。
indisunique
布尔
如果为真,则索引是唯一的索引。
indisprimary
布尔
如果为真,则索引是表的主键。
indisclustered
布尔
如果为真,则表在索引上有一个群集。
indkey
int2vector
pg_attribute.attnum
数组中元素的个数是indnatts,和数组元素的值代表的场数取决于指数。例如,13,它表示第一个字段和第三个字段构成索引的键值,如果为0,则表示为表达式索引,而不是基于简单字段的索引。
indclass
oidvector
pg_opclass.oid
每个字段进行索引键的值,该字段包含一个OID指操作字符操作表。
indexprs
文本
表达式树是用于索引的非简单字段引用的属性。它是一个列表,在indkey每个条目是一个零元素。如果所有指标的属性是简单的引用,它们是空的。
indpred
文本
部分索引断言的表达式树。如果不是索引的一部分,则为空字符串。
请参见下面的应用示例:
复制代码代码如下所示:
看到桌子上的名字#指数的位置,和一批重点领域和具体的关键指数。
Postgres = #选择indnatts,indkey,从pg_index我relname,pg_class C在c.relname =得到;
indnatts indkey relname | |
---------- + -------- + ------------
2 | 13 | testtable2
(1行)
#视图指定表包含索引名单同时。
Postgres = #选择t.relname作为table_name,c.relname作为index_name从(选择relname,indexrelid从pg_index我,pg_class C在c.relname = 'testtable2'and indrelid = c.oid T),pg_index我,pg_class C在t.indexrelid = i.indexrelid和i.indexrelid = c.oid;
table_name index_name |
------------ + ----------------
testtable2 testtable2_idx |
(1行)
系统表记录元数据的数据表,索引(还看到pg_index)、序列、视图、复合类型,和一些特殊的关系类型。注意:并不是所有的领域都是有意义的对象类型。
名称
类型
引用
描述
relname
名称
数据类型的名称。
relnamespace
OID
pg_namespace.oid
包含对象名称空间(模式)的OI。
reltype
OID
pg_type.oid
与该表的行类型相对应的数据类型。
relowner
OID
pg_authid.oid
对象的所有者。
领域
OID
pg_am.oid
对于索引对象,它代表了指数型(B树、哈希)。
relfilenode
OID
对象以文件名存储在磁盘上,如果不是0的话。
reltablespace
OID
pg_tablespace.oid
对象所在的表空间。如果为零,则为数据库使用默认表空间。(如果对象没有磁盘上的文件,则此字段没有意义)
relpages
INT4
数据表或索引占用的磁盘页面数,查询规划人员根据值选择最佳路径。
reltuples
float4
表中的行数,这仅仅是计划者使用的估计值。
reltoastrelid
OID
pg_class.oid
与此表相关的土司表OID如果不是不是0。敬酒表店大领域离线在从属的形式。
reltoastidxid
OID
pg_class.oid
如果是吐司表,字段是OID的指数,如果它不是面包表,它是0。
relhasindex
布尔
如果这是一个数据表和至少(或最近)的一个指标,这是真的。它是由创建索引,但索引不清楚它。如果真空发现表没有索引,它清除relhasindex。
relisshared
布尔
如果整个集群中的所有数据库共享该表,那么它是正确的。
relkind
烧焦
r =普通表,i =索引,s =序列,v =视图,C =复合类型,s =特殊,T =吐司表
relnatts
T2
在数据表的用户字段数(除系统领域,如OID)。必须在pg_attribute.see pg_attribute.attnum相同数据的行数。
relchecks
T2
检查表中的约束条件的数量,是指pg_constraint表。
reltriggers
T2
表中的触发器的数量;指pg_trigger表。
relhasoids
布尔
如果我们生成对象中每个线的老,这是真的。
relhaspkey
布尔
如果表有主键,那么它是真的。
relhasrules
布尔
如果表中有一个规则,看pg_rewrite表。
relhassubclass
布尔
如果表中有一个数据库,它是真的。
relacl
aclitem { }
访问权限。
请参见下面的应用示例:
复制代码代码如下所示:
#查看指定表数据对象模型
Postgres = #选择relname,relnamespace,从pg_class C nspname,pg_namespace N relname =得到;
relname relnamespace nspname | |
------------- + -------------- + ---------
公共数据| 2200 |
(1行)
#视图指定的数据表对象的所有者(作用)。
Postgres = #选择relname,从pg_class C rolname,pg_authid金relname = 'testtable= 'testtable;
relname rolname |
------------- + ----------
数据| Postgres
(1行)
二,pg_attribute:
所有表的系统表存储字段的信息,包括系统表,如数据库中的表pg_class.each领域已经在pg_attribute表中的一行记录。
名称
类型
引用
描述
attrelid
OID
pg_class.oid
这个字段属于的表。
attname
名称
字段名称。
atttypid
OID
pg_type.oid
字段的数据类型。
attstattarget
INT4
的attstattarget控件设置的详细程度对这一领域的统计分析。零值表示没有统计信息的收集,与负数为统计对象,采用系统默认。积极价值的准确信息是数据类型有关。
attlen
T2
那这场属于类型的长度。(本pg_type。typlen)
attnum
T2
字段的数量,一般的场数从1。系统领域,如旧,是一个任意的负数。
attndims
INT4
如果字段是数组,则该值表示数组的维数,否则为0。
attcacheoff
INT4
它总是在磁盘上为1,但是如果它被加载到内存中的行描述符中,它可能会更新到行中字段中的偏移量。
atttypmod
INT4
它代表了数据表提供的类型创建时(例如,最大长度的varchar字段)的值通常是1类,不需要atttypmod。
attbyval
布尔
本pg_type.typbyval字段的值。
attstorage
烧焦
本pg_type.typstorage字段的值。
attalign
烧焦
本pg_type.typalign字段的值。
attnotnull
布尔
如果字段具有非空约束,则为true,否则为false。
atthasdef
布尔
如果在这个领域有一个默认值,它对应的记录,实际上定义了价值的pg_attrdef形式。
attisdropped
布尔
该字段是否已被删除。如果删除该字段,该字段仍在物理表中,但它将被解析器忽略,因此无法通过SQL访问它。
attislocal
布尔
这个字段是否在对象中本地定义。
attinhcount
INT4
字段拥有的直接祖先数。如果字段的祖先的数目不是零,则不能删除或重命名它。
请参见下面的应用示例:
复制代码代码如下所示:
#查看指定的字段的名称和数量表包含。
Postgres = #选择relname,attname,attnum从pg_class C,pg_attribute属性,relname =得到;
relname attname attnum | |
------------- + ---------- + --------
数据tableoid - 7 | |
数据| | Cmax - 6
数据| | Xmax - 5
数据4 | | Cmin
数据| | xmin - 3
1 | | Grid数据
我| |数据1
(7行)
#只查看用户定义类型的字段
Postgres = #选择relname,attname,typname从pg_class C,pg_attribute,pg_type,pg_attribute,relname = 0。
relname attname typname | |
------------- + ---------- + ---------
我| | INT4数据
(7行)
三、pg_attrdef:
系统表主要存储字段的默认值,并在该领域的主要信息存储在pg_attribute系统表。注意:只有字段声明的默认值将被记录在表格中。
名称
类型
引用
描述
adrelid
OID
pg_class.oid
这个字段属于的表
管理杂志
T2
pg_attribute.attnum
场数,其规则是相当于pg_attribute.attnum
adbin
文本
字段默认值的内部表示形式。
adsrc
文本
默认值的人类可读表达式的形式。
请参见下面的应用示例:
复制代码代码如下所示:
#视图指定表的字段存在默认值,也显示字段名称和默认值定义
Postgres = #创建表testtable2(我的整数,默认为100);
创建表
Postgres = #选择c.relname,a.attname,ad.adnum,从pg_class C,pg_attribute一ad.adsrc,和C的pg_attribute等于零比零。
relname attname管理杂志adsrc | | |
------------- + ---------- + --------- + -------
testtable2我| | 1 | 100
(1行)
四、pg_authid:
系统表存储有关数据库身份验证的角色信息。在PostgreSQL,角色可以为用户和组的两种形式。对于用户来说,唯一的rolcanlogin旗的作用是集。因为表包含密码的数据,这是不公开的可读性。在PostgreSQL,另一个系统的观点,pg_roles,是建立在顶部的表,使密码字段空白。
名称
类型
引用
描述
rolname
名称
角色名。
rolsuper
布尔
角色是否有超级用户权限。
rolcreaterole
布尔
角色是否可以创建其他角色。
rolcreatedb
布尔
角色是否可以创建数据库。
rolcatupdate
布尔
一个角色是否可以直接更新系统表(如果设置为false,即使是超级用户无法更新系统表)。
rolcanlogin
布尔
是否可以登录角色,换句话说,是否可以将角色授予会话身份验证标识符。
rolpassword
文本
密码(可能是加密的);如果不是,则为空。
rolvaliduntil
timestamptz
密码失效时间(仅用于密码身份验证);如果没有故障期,则为空。
rolconfig
文本{ }
运行时配置变量的会话默认值。
请参见下面的应用示例:
复制代码代码如下所示:
#可以从这个密码已加密的结果输出。
Postgres = #选择rolname,rolpassword从pg_authid;
Rolname rolpassword |
----------- + -------------------------------------
md5a3556571e93b0d20722ba62be61e8c2d | Postgres
五、pg_auth_members:
系统表存储角色之间的成员关系。
名称
类型
引用
描述
roleid
OID
pg_authid.oid
组角色的id。
成员
OID
pg_authid.oid
身份证,属于该组的作用roleid成员角色。
让与人
OID
pg_authid.oid
id提供该成员关系的角色。
admin_option
布尔
如果您有权限向组角色添加其他成员角色,则为真。
请参见下面的应用示例:
复制代码代码如下所示:
# 1。首先查看角色成员表中角色之间的成员关系,只有一个成员角色是当前结果集中的一个组角色的一部分。
#如果有成员属于同一组人物的多重角色,所以会有一批记录。
Postgres = # SELECT * FROM pg_auth_members;
roleid成员授予人admin_option | | |
-------- + -------- + --------- + --------------
16446 | 16445 | 10 | F
(1行)
# 2。查看组角色的名称。
Postgres = #选择pg_authid一rolname,pg_auth_members是a.oid = am.roleid;
rolname
—
mygroup
(1行)
# 3。查看成员角色的名称。
如果# 4。需要使用结果集获得角色之间的隶属关系,这两个结果集可以关联子查询。
Postgres = #选择pg_authid一rolname,pg_auth_members是a.oid = am.member;
rolname
—
中
(1行)
六、pg_constraint:
系统表店检查约束、主键、唯一约束,并在PostgreSQL的表对象的外键约束。
名称
类型
引用
描述
conname
名称
名称的约束(不一定是唯一的)。
connamespace
OID
pg_namespace.oid
包含命名空间的OID(模式)这种约束。
contype
烧焦
c =检查约束,f =外部键约束,p =主键约束,u =唯一约束
condeferrable
布尔
约束是否可以推迟。
condeferred
布尔
这个约束在短时间内被延迟了吗
conrelid
OID
pg_class.oid
约束所在的表如果不是表约束,则为0。
contypid
OID
pg_type.oid
如果约束不是域约束,则该约束所在的域为0。
confrelid
OID
pg_class.oid
如果是外键,则指向参考表,否则为0。
confupdtype
烧焦
外键更新动作代码。
confdeltype
烧焦
外部键删除操作代码。
confmatchtype
烧焦
外键匹配的类型。
12:
INT2 { }
pg_attribute.attnum
如果它是一个表约束,则它是约束控件中的字段列表。
confkey
INT2 { }
pg_attribute.attnum
如果是外键,则是引用字段列表。
伴血肿
文本
如果检查了约束,则表示表达式的内部形式。
consrc
文本
如果检查了约束,它就是表达式的可读形式。
七、pg_tablespace:
系统将表空间的信息表列出。注意:表可以放在一个特定的表空间中,有助于管理磁盘布局和解决IO瓶颈。
名称
类型
引用
描述
spcname
名称
表空间的名称。
spcowner
OID
pg_authid.oid
表空间的所有者,通常是创建它的角色。
spclocation
文本
表空间的位置(目录路径)。
spcacl
aclitem { }
访问权限。
请参见下面的应用示例:
复制代码代码如下所示:
# 1。创建表空间。
Postgres = #创建表空间my_tablespace位置 / / /选择PostgreSQL 9.1 /该;
创建表空间
# 2。将新表空间的创建权限公开。
Postgres=# GRANT CREATE ON TABLESPACE my_tablespace TO public;
格兰特
# 3。查看系统中用户自定义表空间的名称、文件的位置以及创建它的角色的名称。
两表空间(pg_default和pg_global)被创建时自动# 4。创建的系统是空的(不是空的)。
Postgres = #选择spcname,rolname spclocation,从pg_tablespace TS,pg_authid在ts.spcowner = a.oid和spclocation <>;
spcname rolname spclocation | |
--------------- + ---------- + ----------------------------
my_tablespace Postgres / / /选择PostgreSQL 9.1 / MYDATA | |
(1行)
八、pg_namespace:
系统表存储名称空间(模式)。
名称
类型
引用
描述
nspname
名称
名称空间(模式)的名称。
nspowner
OID
pg_authid.oid
命名空间的所有者(模式)
nspacl
aclitem { }
访问权限。
请参见下面的应用示例:
复制代码代码如下所示:
对公共模型#查看当前数据库创建者的名字。
Postgres = #选择nspname,从pg_namespace N rolname,pg_authid在nspname =征收征收;
Nspname rolname |
---------- + ----------
公共Postgres |
(1行)
九、pg_database:
系统表存储了数据库中的信息。不像大多数的系统表,在集群中,桌上的所有数据库,这是共享的,每个集群都有一个pg_database复制而不是一个数据库。
名称
类型
引用
描述
datname
名称
数据库的名称。
datdba
OID
pg_authid.oid
数据库所有者,通常是创建数据库的角色。
编码
INT4
数据库的字符编码方法。
datistemplate
布尔
如果是真的,则该数据库可用于创建数据库模板子句,以便为该数据库的克隆创建一个新数据库。
datallowconn
布尔
如果它是假的,没有人可以加入这个数据库。
datlastsysoid
OID
避免在数据库中,最后的系统,为pg_dump特别有用。
datvacuumxid
XID
datfrozenxid
XID
dattablespace
文本
pg_tablespace.oid
对于数据库的默认表空间。在这个数据库中,所有的pg_class.reltablespace零表将被保存在该表空间,特别指出,所有的非共享的系统表也存放在这里。
datconfig
文本{ }
运行时配置变量的会话默认值。
datacl
aclitem { }
访问权限。
十、pg_index:
系统表存储的索引信息的一部分,其他大部分信息存储在pg_class。
名称
类型
引用
描述
indexrelid
OID
pg_class.oid
该指数在pg_class是OID。
indrelid
OID
pg_class.oid
这个记录在索引的表的pg_class OID。
indnatts
T2
索引中的字段数(一个副本的pg_class。relnatts)。
indisunique
布尔
如果为真,则索引是唯一的索引。
indisprimary
布尔
如果为真,则索引是表的主键。
indisclustered
布尔
如果为真,则表在索引上有一个群集。
indkey
int2vector
pg_attribute.attnum
数组中元素的个数是indnatts,和数组元素的值代表的场数取决于指数。例如,13,它表示第一个字段和第三个字段构成索引的键值,如果为0,则表示为表达式索引,而不是基于简单字段的索引。
indclass
oidvector
pg_opclass.oid
每个字段进行索引键的值,该字段包含一个OID指操作字符操作表。
indexprs
文本
表达式树是用于索引的非简单字段引用的属性。它是一个列表,在indkey每个条目是一个零元素。如果所有指标的属性是简单的引用,它们是空的。
indpred
文本
部分索引断言的表达式树。如果不是索引的一部分,则为空字符串。
请参见下面的应用示例:
复制代码代码如下所示:
看到桌子上的名字#指数的位置,和一批重点领域和具体的关键指数。
Postgres = #选择indnatts,indkey,从pg_index我relname,pg_class C在c.relname =得到;
indnatts indkey relname | |
---------- + -------- + ------------
2 | 13 | testtable2
(1行)
#视图指定表包含索引名单同时。
Postgres = #选择t.relname作为table_name,c.relname作为index_name从(选择relname,indexrelid从pg_index我,pg_class C在c.relname = 'testtable2'and indrelid = c.oid T),pg_index我,pg_class C在t.indexrelid = i.indexrelid和i.indexrelid = c.oid;
table_name index_name |
------------ + ----------------
testtable2 testtable2_idx |
(1行)
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。