系统表信息函数

您所在的位置:网站首页 sql集合操作符 系统表信息函数

系统表信息函数

#系统表信息函数| 来源: 网络整理| 查看: 265

format_type(type_oid, typemod)

描述:获取数据类型的SQL名称。

返回类型:text

备注:

format_type通过某个数据类型的类型OID以及可能的类型修饰词,返回其SQL名称。如果不知道具体的修饰词,则在类型修饰词的位置传入NULL。类型修饰词一般只对有长度限制的数据类型有意义。format_type所返回的SQL名称中包含数据类型的长度值,其大小是:实际存储长度len - sizeof(int32),单位字节。原因是数据存储时需要32位的空间来存储用户对数据类型的自定义长度信息,即实际存储长度要比用户定义长度多4个字节。在下例中,format_type返回的SQL名称为“character varying(6)”,6表示varchar类型的长度值是6字节,因此该类型的实际存储长度为10字节。

1 2 3 4 5 SELECT format_type((SELECT oid FROM pg_type WHERE typname='varchar'), 10); format_type ---------------------- character varying(6) (1 row) pg_check_authid(role_oid)

描述:检查是否存在给定oid的角色名。

返回类型:bool

pg_describe_object(catalog_id, object_id, object_sub_id)

描述:获取数据库对象的描述。

返回类型:text

备注:pg_describe_object返回由目录OID,对象OID和一个(或许0个)子对象ID指定的数据库对象的描述。这有助于确认存储在pg_depend系统表中对象的身份。

pg_get_constraintdef(constraint_oid)

描述:获取约束的定义。

返回类型:text

pg_get_constraintdef(constraint_oid, pretty_bool)

描述:获取约束的定义。

返回类型:text

备注:pg_get_constraintdef和pg_get_indexdef分别从约束或索引上使用创建命令进行重构。

pg_get_expr(pg_node_tree, relation_oid)

描述:反编译表达式的内部形式,假设其中的任何Vars都引用第二个参数指定的关系。

返回类型:text

pg_get_expr(pg_node_tree, relation_oid, pretty_bool)

描述:反编译表达式的内部形式,假设其中的任何Vars都引用第二个参数指定的关系。

返回类型:text

备注:pg_get_expr反编译一个独立表达式的内部形式,比如一个字段的缺省值。在检查系统表的内容的时候很有用。如果表达式可能包含关键字,则指定它们引用相关的OID作为第二个参数;如果没有关键字,零就足够了。

pg_get_functiondef(func_oid)

描述:获取函数的定义。

返回类型:text

func_oid为函数的OID,可以通过PG_PROC系统表查询。

示例:查询函数justify_days的OID及其函数定义。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 SELECT oid FROM pg_proc WHERE proname ='justify_days'; oid ------ 1295 (1 row) SELECT * FROM pg_get_functiondef(1295); headerlines | definition -------------+-------------------------------------------------------------- 4 | CREATE OR REPLACE FUNCTION pg_catalog.justify_days(interval)+ | RETURNS interval + | LANGUAGE internal + | IMMUTABLE STRICT NOT FENCED NOT SHIPPABLE + | AS $function$interval_justify_days$function$ + | (1 row) pg_get_function_arguments(func_oid)

描述:获取函数定义的参数列表(带默认值)。

返回类型:text

备注:pg_get_function_arguments返回一个函数的参数列表,需要在CREATE FUNCTION中使用这种格式。

pg_get_function_identity_arguments(func_oid)

描述:获取参数列表来确定一个函数 (不带默认值)。

返回类型:text

备注:pg_get_function_identity_arguments返回需要的参数列表用来标识函数,这种形式需要在ALTER FUNCTION中使用,并且这种形式省略了默认值。

pg_get_function_result(func_oid)

描述:获取函数的RETURNS子句。

返回类型:text

备注:pg_get_function_result为函数返回适当的RETURNS子句。

pg_get_indexdef(index_oid)

描述:获取索引的CREATE INDEX命令。

返回类型:text

index_oid为索引的OID,可以通过PG_STATIO_ALL_INDEXES系统视图查询。

示例:查询索引ds_ship_mode_t1_index1的OID及其创建命令。

1 2 3 4 5 6 7 8 9 10 SELECT indexrelid FROM PG_STATIO_ALL_INDEXES WHERE indexrelname = 'ds_ship_mode_t1_index1'; indexrelid ------------ 136035 (1 row) SELECT * FROM pg_get_indexdef(136035); pg_get_indexdef --------------------------------------------------------------------------------------------------------------- CREATE INDEX ds_ship_mode_t1_index1 ON tpcds.ship_mode_t1 USING psort (sm_ship_mode_sk) TABLESPACE pg_default (1 row) pg_get_indexdef(index_oid, column_no, pretty_bool)

描述:获取索引的CREATE INDEX命令,或者如果column_no不为零,则只获取一个索引字段的定义。

返回类型:text

1 2 3 4 5 6 7 8 9 10 SELECT * FROM pg_get_indexdef(136035,0,false); pg_get_indexdef --------------------------------------------------------------------------------------------------------------- CREATE INDEX ds_ship_mode_t1_index1 ON tpcds.ship_mode_t1 USING psort (sm_ship_mode_sk) TABLESPACE pg_default (1 row) SELECT * FROM pg_get_indexdef(136035,1,false); pg_get_indexdef ----------------- sm_ship_mode_sk (1 row) pg_get_keywords()

描述:获取SQL关键字和类别列表。

返回类型:setof record

备注:pg_get_keywords返回一组关于描述服务器识别SQL关键字的记录。word列包含关键字。catcode列包含一个分类代码:U表示通用的,C表示列名,T表示类型或函数名,或R表示保留。catdesc列包含了一个可能本地化描述分类的字符串。

pg_get_ruledef(rule_oid)

描述:获取规则的CREATE RULE命令。

返回类型:text

pg_get_ruledef(rule_oid, pretty_bool)

描述:获取规则的CREATE RULE命令。

返回类型:text

pg_get_userbyid(role_oid)

描述:获取给定OID的角色名。

返回类型:name

备注:pg_get_userbyid通过角色的OID抽取对应的用户名。

pg_get_viewdef(viewname text [, pretty bool [, fullflag bool]])

描述:为视图获取底层的SELECT命令。

返回类型:text

备注:

pg_get_viewdef重构定义视图的SELECT查询。pretty bool参数为true时,显示格式“适合打印”,且该格式易读。pretty bool参数缺省值为false,显示格式不易读。如果用于转储,那么尽可能使用缺省格式。pretty bool参数只对有效视图生效。 fullflag bool参数为true时,显示视图的完整定义。其缺省值为false。 pg_get_viewdef(viewoid oid [, pretty bool [, fullflag bool]])

描述:为视图获取底层的SELECT命令。

返回类型:text

pg_get_viewdef(view_oid, wrap_column_int)

描述:为视图获取底层的SELECT命令;行字段被换到指定的列数,打印是隐含的。

返回类型:text

pg_get_tabledef(table_oid)

描述:根据table_oid获取表定义。

返回类型:text

示例:先通过系统表pg_class获取表customer_t2的OID,再使用此函数查询表customer_t2的定义,可获取创建表customer_t2时的表字段,表的存储方式(行存或列存)及表的分布方式等信息。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 SELECT oid FROM pg_class WHERE relname ='customer_t2'; oid ------- 17353 (1 row) SELECT * FROM pg_get_tabledef(17353); pg_get_tabledef -------------------------------------------- SET search_path = dbadmin; + CREATE TABLE customer_t2 ( + state_id character(2), + state_name character varying(40), + area_id numeric + ) + WITH (orientation=column, compression=low)+ DISTRIBUTE BY HASH(state_id) + TO GROUP group_version1; (1 row) pg_get_tabledef(table_name)

描述:根据table_name获取表定义。

返回类型:text

备注:pg_get_tabledef重构出表定义的CREATE语句,包含了表定义本身、索引信息、comments信息。对于表对象依赖的group、schema、tablespace、server等信息,需要用户自己去创建,表定义里不会有这些对象的创建语句。

pg_options_to_table(reloptions)

描述:获取存储选项名称/值对的集合。

返回类型:setof record

备注:pg_options_to_table当通过pg_class.reloptions或pg_attribute.attoptions时返回存储选项名字/值对(option_name/option_value)的集合。

pg_typeof(any)

描述:获取任何值的数据类型。

返回类型:regtype

备注:

pg_typeof返回传递给他的值的数据类型OID。这可能有助于故障排除或动态构造SQL查询。声明此函数返回regtype,这是一个OID别名类型(请参考对象标识符类型);这意味着它是一个为了比较而显示类型名字的OID。

示例:

1 2 3 4 5 6 7 8 9 10 11 SELECT pg_typeof(33); pg_typeof ----------- integer (1 row) SELECT typlen FROM pg_type WHERE oid = pg_typeof(33); typlen -------- 4 (1 row) collation for (any)

描述:获取参数的排序。

返回类型:text

备注:

表达式collation for返回传递给他的值的排序。示例:

1 2 3 4 5 SELECT collation for (description) FROM pg_description LIMIT 1; pg_collation_for ------------------ "default" (1 row)

值可能是引号括起来的并且模式限制的。如果没有为参数表达式排序,则返回一个null值。如果参数不是排序的类型,则抛出一个错误。

getdistributekey(table_name)

描述:获取一个hash表的分布列。

返回类型:text

示例:

1 2 3 4 5 SELECT getdistributekey('item'); getdistributekey ------------------ i_item_sk (1 row)


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3