这篇文章主要讲解了“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 代码> <代码>其他> 代码1 <代码> 代码> <代码> 代码>结束<代码> 代码> <代码> is_deferrable, 代码>
<代码>,,,,,,,,,,代码> <代码> 代码> <代码>当代码> <代码> c。condeferred=代码> <代码> & # 39;f # 39; 代码> <代码> 代码> <代码> 0 代码> <代码>其他> 代码1 <代码> 代码> <代码> 代码>结束<代码> 代码> <代码> is_deferred, 代码>
<代码>,,,,,,,,,,代码> <代码> t。relname <代码>/<代码> 代码> <代码> table_name, 代码>
<代码>,,,,,,,,,,代码> <代码> array_to_string (c。conkey 代码> <代码> & # 39;null