PostgreSql怎么获取数据库中关键系统信息

介绍

这篇文章主要讲解了“PostgreSql怎么获取数据库中关键系统信息”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PostgreSql怎么获取数据库中关键系统信息”吧!

一般来说每种数据库中都有一个或几个系统的数据库,在PG中schemaname以pg_catalog开头都是系统表,通过系统表我们就可以了解的大部分数据库系统所做的事情

1,查看当前所有的表(用户表)

选择relname

,从pg_class

, relname ! ~ & # 39; ^ (pg_ | sql_) & # 39;

,,和relkind=& # 39; " # 39;;

或者

也可以

选择table_name

,从information_schema.tables

, table_type=& # 39;基础表# 39;

,,和table_schema不是

,,,,(& # 39;pg_catalog& # 39;, & # 39; information_schema& # 39;);

2,查看用户建立的视图

选择table_name

,从information_schema.views

, table_schema不是在(& # 39;pg_catalog& # 39; & # 39; information_schema& # 39;)

,和table_name ! ~ & # 39; ^ pg_& # 39;;

3当前数据库的用户

选择usename pg_user;

4列出某个表的字段选择a.attname

,从pg_class c, pg_attribute pg_type t

, c。relname=& # 39;表名& # 39;

,和一个。attnum祝辞0

,和一个。attrelid=c.oid

,和一个。atttypid=t。oid

5查询表的索引

选择relname indkey

,从pg_class pg_index

, pg_class的地方。oid=pg_index.indexrelid

,和pg_class。oid (

,,选择indexrelid

,,,从pg_index pg_class

,,,pg_class.relname=& # 39;表名& # 39;

,,,,和pg_class.oid=pg_index.indrelid

,,,和indisunique !=& # 39; t # 39;

,,,和indisprimary !=& # 39; t # 39;

);

查询这个表的那些字段,被建立了索引

选择t。relname,。attname, a.attnum

,,,从pg_index c

左加入pg_class t

,,,,c.indrelid =t。oid

左加入pg_attribute

,,,在一个。attrelid=t.oid

,,,和一个。attnum=任何(indkey)

,,在t。relname=& # 39;表名& # 39;

,,,,

获得当前数据库表的建立索引的语句

,选择,表名,

,,indexname,

,,indexdef的

,,pg_indexes

在哪里,,schemaname=& # 39;公共# 39;

,

,,表名,

,,indexname;

6系统中指定表建立的约束

选择constraint_name constraint_type

,从information_schema.table_constraints

, table_name=& # 39;表名& # 39;;

7对某个约束的详细信息的展示

<代码> <代码>选择c。conname <代码>/<代码> <代码> constraint_name,

<代码>,,,,,,,,,, <代码> <代码>案例c.contype

<代码>,,,,,,,,,,,, <代码>当 <代码> & # 39;c # 39;然后 <代码> <代码> & # 39;检查# 39;

<代码>,,,,,,,,,,,, <代码>当 <代码> & # 39;f # 39;然后 <代码> <代码> & # 39;外国关键# 39;

<代码>,,,,,,,,,,,, <代码>, <代码> & # 39;p # 39;然后 <代码> <代码> & # 39;主键# 39;

<代码>,,,,,,,,,,,, <代码>, <代码> & # 39;u # 39;然后 <代码> <代码> & # 39;独一无二的# 39;

<代码>,,,,,,,,,, <代码> <代码>终结 <代码>“constraint_type" <代码>、

<代码>,,,,,,,,,, <代码> <代码>当 <代码> c。condeferrable= <代码> & # 39;f # 39; <代码> <代码> 0 <代码>其他> <代码> 结束<代码> <代码> is_deferrable,

<代码>,,,,,,,,,, <代码> <代码>当 <代码> c。condeferred= <代码> & # 39;f # 39; <代码> <代码> 0 <代码>其他> <代码> 结束<代码> <代码> is_deferred,

<代码>,,,,,,,,,, <代码> t。relname <代码>/<代码> <代码> table_name,

<代码>,,,,,,,,,, <代码> array_to_string (c。conkey <代码> & # 39;null

PostgreSql怎么获取数据库中关键系统信息