华为云用户手册

  • array_to_string(anyarray, text [, text]) 描述:使用第一个text作为数组的新分隔符,使用第二个text替换数组值为null的值。 返回类型:text 示例: 1 2 3 4 5 SELECT array_to_string(ARRAY[1, 2, 3, NULL, 5], ',', '*') AS RESULT; result ----------- 1,2,3,*,5 (1 row) 在string_to_array中,如果省略null字符串参数或为NULL,将字符串中没有输入内容的子串替换为NULL。 在array_to_string中,如果省略null字符串参数或为NULL,运算中将跳过在数组中的任何null元素,并且不会在输出字符串中出现。
  • array_cat(anyarray, anyarray) 描述:连接两个数组,支持多维数组。 返回类型:anyarray 示例: 1 2 3 4 5 6 7 8 9 10 11 SELECT array_cat(ARRAY[1,2,3], ARRAY[4,5]) AS RESULT; result ------------- {1,2,3,4,5} (1 row) SELECT array_cat(ARRAY[[1,2],[4,5]], ARRAY[6,7]) AS RESULT; result --------------------- {{1,2},{4,5},{6,7}} (1 row)
  • pgxc_lock_for_backup() 描述:备份前给集群加锁,备份是为了在新增节点上执行恢复操作。 返回值类型:boolean pgxc_lock_for_backup是在使用gs_dump或gs_dumpall工具备份集群前,用来给集群加锁的。当给集群加锁后,不允许有改变系统结构的操作。该函数不影响DML语句。 示例: 1 2 3 4 5 SELECT pgxc_lock_for_backup(); pgxc_lock_for_backup ---------------------- t (1 row)
  • pg_cbm_get_changed_block(startLSNArg text, endLSNArg text) 描述:用于将指定lsn范围之内的cbm文件合并成一个表,并返回表的各行记录。 返回值类型:record 备注:pg_cbm_get_changed_block返回的表字段包含:合并起始的lsn,合并截止的lsn, 表空间oid,库oid,表的relfilenode,表的fork number,表是否被删除,表是否被创建,表是否被截断,表被截断后的页面数,有多少页被修改以及被修改的页号的列表。
  • pg_cbm_recycle_file(slotName name, targetLSNArg text) 描述:删除不再使用的cbm文件,并返回删除后的第一条lsn。其中,slotName为空字符串时,将直接使用targetLSNArg作为回收点;在备份和容灾时,因为并行因素,需要指定相应的slotName,首先记录该任务的targetLSNArg到该slot中,然后遍历所有的backup slots,找到最小的lsn作为回收点。 返回值类型:text
  • pg_enable_delay_ddl_recycle() 描述:开启延迟DDL功能,并返回开启点的xlog位置。 返回值类型:text 示例: 1 2 3 4 5 SELECT pg_enable_delay_ddl_recycle(); pg_enable_delay_ddl_recycle ----------------------------- 00000000/4607B250 (1 row)
  • pgxc_get_senders_catchup_time() 描述:显示所有DN上当前活跃的主备发送线程的追赶信息。 返回值类型:record 函数返回信息如下: 表1 pgxc_get_senders_catchup_time()字段 名称 类型 描述 node_name text 节点名称。 lwpid integer 当前sender的lwpid。 local_role text 本地的角色。 peer_role text 对端的角色。 state text 当前sender的复制状态。 sender text 当前sender的类型。 catchup_start timestamp with time zone catchup启动的时间。 catchup_end timestamp with time zone catchup结束的时间。 catchup_type text catchup方式为全量还是增量。 catchup_bcm_filename text catchup当前执行到的bcm文件 catchup_bcm_finished integer catchup已经操作完成的bcm文件数量。 catchup_bcm_total integer catchup总共需要操作的bcm文件数量。 catchup_percent text catchup已经操作完成的百分比。 catchup_remaining_time text catchup预估剩余时间。
  • pg_stop_backup() 描述:完成执行在线备份。(需要管理员角色或复制的角色) 返回值类型:text 备注:pg_stop_backup删除pg_start_backup创建的标签文件,并且在事务日志归档区里创建一个备份历史文件。这个历史文件包含给予pg_start_backup的标签、备份的事务日志起始与终止位置、备份的起始和终止时间。返回值是备份的事务日志终止位置。计算出中止位置后,当前事务日志的插入点将自动前进到下一个事务日志文件,这样,结束的事务日志文件可以被立即归档从而完成备份。 示例: 1 2 3 4 5 SELECT pg_stop_backup(); pg_stop_backup ---------------- 0/4401E610 (1 row)
  • pg_switch_xlog() 描述:切换到一个新的事务日志文件。(需要管理员角色) 返回值类型:text 备注:pg_switch_xlog移动到下一个事务日志文件,以允许将当前日志文件归档(假定使用连续归档)。返回值是刚完成的事务日志文件的事务日志结束位置+1。如果从最后一次事务日志切换以来没有活动的事务日志,则pg_switch_xlog什么事也不做,直接返回当前事务日志文件的开始位置。 示例: 1 2 3 4 5 SELECT pg_switch_xlog(); pg_switch_xlog ---------------- 0/45017978 (1 row)
  • pg_xlogfile_name_offset(location text) 描述:将事务日志的位置字符串转换为文件名并返回在文件中的字节偏移量。 返回值类型:text,integer 备注:可以使用pg_xlogfile_name_offset从前述函数的返回结果中抽取相应的事务日志文件名称和字节偏移量。例如: 1 2 3 4 5 6 7 SELECT * FROM pg_xlogfile_name_offset(pg_stop_backup()); NOTICE: pg_stop_backup cleanup done, waiting for required WAL segments to be archived NOTICE: pg_stop_backup complete, all required WAL segments have been archived file_name | file_offset --------------------------+------------- 000000010000000000000003 | 272 (1 row)
  • pg_current_xlog_insert_location() 描述:获取当前事务日志的插入位置。 返回值类型:text 备注:pg_current_xlog_insert_location显示当前事务日志的插入位置。插入点是事务日志在某个瞬间的“逻辑终点”,而实际的写入位置则是从服务器内部缓冲区写出时的终点。写入位置是可以从服务器外部检测到的终点,如果要归档部分完成事务日志文件,则该操作即可实现。插入点主要用于服务器调试目的。如果是只读操作,不需要系统管理员权限。 示例: 1 2 3 4 5 SELECT pg_current_xlog_insert_location(); pg_current_xlog_insert_location --------------------------------- 0/4316AD50 (1 row)
  • pg_create_restore_point(name text) 描述:为执行恢复创建一个命名点。(需要管理员角色) 返回值类型:text 备注:pg_create_restore_point创建了一个可以用作恢复目的、有命名的事务日志记录,并返回相应的事务日志位置。在恢复过程中,recovery_target_name可以通过这个名称定位对应的日志恢复点,并从此处开始执行恢复操作。避免使用相同的名称创建多个恢复点,因为恢复操作将在第一个匹配(恢复目标)的名称上停止。
  • pg_current_xlog_location() 描述:获取当前事务日志的写入位置。 返回值类型:text 备注:pg_current_xlog_location使用与前面那些函数相同的格式显示当前事务日志的写入位置。如果是只读操作,不需要系统管理员权限。 示例: 1 2 3 4 5 SELECT pg_current_xlog_location(); pg_current_xlog_location -------------------------- 0/4310D5D8 (1 row)
  • pg_start_backup(label text [, fast boolean ]) 描述:开始执行在线备份。(需要管理员角色或复制的角色) 返回值类型:text 备注:pg_start_backup接受一个用户定义的备份标签(通常这是备份转储文件存放地点的名字)。这个函数向数据库集群的数据目录写入一个备份标签文件,然后以文本方式返回备份的事务日志起始位置。 1 2 3 4 5 SELECT pg_start_backup('label_goes_here'); pg_start_backup ----------------- 0/3000020 (1 row)
  • 语法格式 1 2 3 4 5 [ WITH [ RECURSIVE ] with_query [, ...] ] DELETE [/*+ plan_hint */] FROM [ ONLY ] table_name [ * ] [ [ AS ] alias ] [ USING using_list ] [ WHERE condition | WHERE CURRENT OF cursor_name ] [ RETURNING { * | { output_expr [ [ AS ] output_name ] } [, ...] } ];
  • 参数说明 WITH [ RECURSIVE ] with_query [, ...] 用于声明一个或多个可以在主查询中通过名字引用的子查询,相当于临时表。 如果声明了RECURSIVE,那么允许SELECT子查询通过名字引用它自己。 其中with_query的详细格式为: with_query_name [ ( column_name [, ...] ) ] AS ( {select | values | insert | update | delete} ) – with_query_name指定子查询生成的结果集名字,在查询中可使用该名称访问子查询的结果集。 – column_name指定子查询结果集中显示的列名。 – 每个子查询可以是SELECT,VALUES,INSERT,UPDATE或DELETE语句。 plan_hint子句 以/*+ */的形式在关键字后,用于对指定语句块生成的计划进行hint调优,详细用法请参见使用Plan Hint进行调优。 ONLY 如果指定ONLY则只有该表被删除;如果没有声明,则该表和它的所有子表将都被删除。 table_name 目标表的名字(可以有模式修饰)。 取值范围:已存在的表名。 alias 目标表的别名。 取值范围:字符串,符合标识符命名规范。 using_list using子句。 condition 一个返回boolean值的表达式,用于判断哪些行需要被删除。 WHERE CURRENT OF cursor_name 当前不支持,仅保留语法接口。 output_expr DELETE命令删除行之后计算输出结果的表达式。该表达式可以使用表的任意字段。可以使用*返回被删除行的所有字段。 output_name 一个字段的输出名称。 取值范围:字符串,符合标识符命名规范。
  • 参数说明 rule_name 异常规则集名称。 取值范围:字符串,要符合标识符的命名规范。 blocktime 作业排队阻塞的最大时间,单位:秒。 取值范围:数值型,-1,1~INT64_MAX。 elapsedtime 作业执行的最大时间,单位:秒。 取值范围:数值型,-1,1~INT64_MAX。 allcputime 作业运行中使用的最大CPU时间,单位:秒。 取值范围:数值型,-1,1~INT64_MAX。 cpuskewpercent 作业执行时的CPU使用倾斜率,单位:百分比。 取值范围:数值型,-1,1~100。 cpuavgpercent 作业执行时的平均CPU使用率,单位:百分比。 取值范围:数值型,-1,1~100。 spillsize 作业执行的最大下盘大小,单位:MB。 取值范围:数值型,-1,1~INT64_MAX。 broadcastsize 作业执行的最大广播大小,单位:MB。 取值范围:数值型,-1,1~INT64_MAX。 memsize 作业执行使用的最大内存大小,单位:MB。 取值范围:数值型,-1,1~INT64_MAX。
  • 语法格式 1 ALTER EXCEPT RULE rule_name WITH ({BLOCKTIME=value | ALLCPUTIME=value | ELAPSEDTIME=value | CPUSKEWPERCENT=value | SPILLSIZE=value | BROADCASTSIZE=value | MEMSIZE=value | CPUAVGPERCENT=value}[, ... ]);
  • 示例 修改异常规则except_rule1的blocktime规则阈值为3000秒,下盘空间为4000MB。 1 ALTER EXCEPT RULE except_rule1 WITH (blocktime=3000, spillsize=4000); 修改异常规则except_rule2的下盘空间规则spillsize为5000MB。 1 ALTER EXCEPT RULE except_rule2 WITH (spillsize=5000); 修改资源池resource_pool_a1绑定的异常规则集为except_rule3。 1 ALTER resource pool resource_pool_a1 WITH (except_rule='except_rule3'); 解除资源池resource_pool_a1绑定的异常规则集。 1 ALTER resource pool resource_pool_a1 WITH (except_rule='None');
  • 参数说明 LOCAL 声明该命令只在当前事务中有效。 SESSION 声明这个命令只对当前会话起作用。 取值范围:字符串,要符合标识符的命名规范。 ISOLATION LEVEL 指定事务隔离级别,该参数决定当一个事务中存在其他并发运行事务时能够看到什么数据。 在事务中第一个数据修改语句(INSERT,DELETE,UPDATE,FETCH,COPY)执行之后,事务隔离级别就不能再次设置。 取值范围: READ COMMITTED:读已提交隔离级别,只能读到已经提交的数据,而不会读到未提交的数据。这是缺省值。 READ UNCOMMITTED:读未提交隔离级别,GaussDB(DWS)不支持READ UNCOMMITTED,如果设置了READ UNCOMMITTED,实际上使用的是READ COMMITTED。 REPEATABLE READ:可重复读隔离级别,仅仅能看到事务开始之前提交的数据,不能看到未提交的数据,以及在事务执行期间由其它并发事务提交的修改。 SERIALIZABLE:事务可序列化,GaussDB(DWS)不支持SERIALIZABLE,如果设置了SERIALIZABLE,实际上使用的是REPEATABLE READ。 READ WRITE | READ ONLY 指定事务访问模式(读/写或者只读)。
  • 语法格式 设置事务的隔离级别、读写模式。 1 2 3 { SET [ LOCAL ] TRANSACTION|SET SESSION CHARACTERISTICS AS TRANSACTION } { ISOLATION LEVEL { READ COMMITTED | READ UNCOMMITTED | SERIALIZABLE | REPEATABLE READ } | { READ WRITE | READ ONLY } } [, ...]
  • 示例 修改视图名称: 1 ALTER VIEW tpcds.customer_details_view_v1 RENAME TO customer_details_view_v2; 修改视图名称,新视图名前带有原视图所在的schema名: 1 ALTER VIEW tpcds.customer_details_view_v1 RENAME TO tpcds.customer_details_view_v2; 修改视图所属schema: 1 ALTER VIEW tpcds.customer_details_view_v2 SET schema public; 重建视图: 1 ALTER VIEW public.customer_details_view_v2 REBUILD; 重建依赖视图: 1 ALTER VIEW ONLY public.customer_details_view_v2 REBUILD;
  • 语法格式 设置视图列的默认值。 1 2 ALTER VIEW [ IF EXISTS ] view_name ALTER [ COLUMN ] column_name SET DEFAULT expression; 取消列视图列的默认值。 1 2 ALTER VIEW [ IF EXISTS ] view_name ALTER [ COLUMN ] column_name DROP DEFAULT; 修改视图的所有者。 1 2 ALTER VIEW [ IF EXISTS ] view_name OWNER TO new_owner; 重命名视图,支持新视图名前带有原视图所在的schema名,不支持同时修改schema名。 1 2 3 4 ALTER VIEW [ IF EXISTS ] view_name RENAME TO new_name; ALTER VIEW [ IF EXISTS ] view_name RENAME TO schema.new_name; 设置视图的所属模式。 1 2 ALTER VIEW [ IF EXISTS ] view_name SET SCHEMA new_schema; 设置视图的选项。 1 2 ALTER VIEW [ IF EXISTS ] view_name SET ( { view_option_name [ = view_option_value ] } [, ... ] ); 重置视图的选项。 1 2 ALTER VIEW [ IF EXISTS ] view_name RESET ( view_option_name [, ... ] );
  • 参数说明 IF EXISTS 使用这个选项,如果视图不存在时不会产生错误,仅有会有一个提示信息。 view_name 视图名称,可以用模式修饰。 取值范围:字符串,符合标识符命名规范。 column_name 可选的名字列表,视图的字段名。如果没有给出,字段名取自查询中的字段名。 取值范围:字符串,符合标识符命名规范。 SET/DROP DEFAULT 设置或删除一个列的缺省值,该参数暂无实际意义。 new_owner 视图新所有者的用户名称。 new_name 视图的新名称。 new_schema 视图的新模式。 view_option_name [ = view_option_value ] 该子句为视图指定一个可选的参数。 目前view_option_name支持的参数仅有security_barrier,当VIEW试图提供行级安全时,应使用该参数。 取值范围:boolean类型,TRUE、FALSE。 REBUILD 该子句用于视图解耦,可使用已保存的原始语句重新创建视图,恢复依赖关系。REBUILD注意事项如下: 重建视图会从当前视图开始,依次向后级联刷新与其关联的所有视图,如果其依赖的前向视图也为不可用状态,会触发自动重建。 不支持对有依赖关系的临时表及临时视图的解耦DROP,可以对没有依赖关系的临时视图进行REBUILD操作。 支持视图模式名称及视图名称的修改,REBUILD按照最新的名称重建,但是query部分保留原始定义。 基表字段类型仅支持大类(字符型、数字型、时间类型等)范围内的修改;当基表添加字段时,视图不会置为无效,且定义不变。 无效视图备份时以注释形式导出,恢复时需要自行手动处理。 GUC参数view_independent设置为on时,支持视图自动重建。 以下场景会触发上层级联视图无效: DROP TABLE/VIEW RENAME TABLE/VIEW ALTER TABLE DROP COLUMN ALTER TABLE CHANGE/ALTER COLUMN TYPE ALTER TABLE CHANGE/ALTER COLUMN NAME ALTER TABLE/VIEW NAMESPACE ALTER TABLE/VIEW RENAME ONLY 控制视图重建的范围,只重建视图及其所依赖的视图。当view_independent设置为on时,此功能可正常使用。
  • stddev(expression) 描述:stddev_samp的别名。 当入参类型为DOUBLE PRECISION时,入参取值范围为1.34E-154~1.34E+154,若数值超过取值范围则报错:value out of range: overflow。如果实际使用中不可避免入参超出范围,则使用cast函数强转该列类型为numeric。 返回类型:对于浮点类型的输入返回double precision,其他输入返回numeric。 示例: 1 2 3 4 5 SELECT STDDEV(inv_quantity_on_hand) FROM tpcds.inventory WHERE inv_warehouse_sk = 1; stddev ------------------ 289.224359757315 (1 row)
  • bit_or(expression) 描述:所有非NULL输入值的按位或(OR),如果全部输入值皆为NULL,那么结果也为NULL。 返回类型:和参数数据类型相同 示例: 1 2 3 4 5 SELECT BIT_OR(inv_quantity_on_hand) FROM tpcds.inventory WHERE inv_warehouse_sk = 1; bit_or -------- 1023 (1 row)
  • variance(expexpression,ression) 描述:var_samp的别名。 当入参类型为DOUBLE PRECISION时,入参取值范围为1.34E-154~1.34E+154,若数值超过取值范围则报错:value out of range: overflow。如果实际使用中不可避免入参超出范围,则使用cast函数强转该列类型为numeric。 返回类型:对于浮点类型的输入返回double precision类型,其他输入返回numeric类型。 示例: 1 2 3 4 5 SELECT VARIANCE(inv_quantity_on_hand) FROM tpcds.inventory WHERE inv_warehouse_sk = 1; variance -------------------- 83650.730277028768 (1 row)
  • checksum(expression) 描述:返回所有输入值的CHECKSUM值。使用该函数可以用来验证GaussDB(DWS)数据库(不支持GaussDB(DWS)之外的其他数据库)的备份恢复或者数据迁移操作前后表中的数据是否相同。在备份恢复或者数据迁移操作前后都需要用户通过手工执行SQL命令的方式获取执行结果,通过对比获取的执行结果判断操作前后表中的数据是否相同。 对于大表,CHECKSUM函数可能会需要很长时间。 如果某两表的CHECKSUM值不同,则表明两表的内容是不同的。由于CHECKSUM函数中使用散列函数不能保证无冲突,因此两个不同内容的表可能会得到相同的CHECKSUM值,存在这种情况的可能性较小。对于列进行的CHECKSUM也存在相同的情况。 对于时间类型timestamp, timestamptz和smalldatetime,计算CHECKSUM值时请确保时区设置一致。 若计算某列的CHECKSUM值,且该列类型可以默认转为TEXT类型,则expression为列名。 若计算某列的CHECKSUM值,且该列类型不能默认转为TEXT类型,则expression为列名::TEXT。 若计算所有列的CHECKSUM值,则expression为表名::TEXT。 可以默认转换为TEXT类型的类型包括:char, name, int8, int2, int1, int4, raw, pg_node_tree, float4, float8, bpchar, varchar, nvarchar2, date, timestamp, timestamptz, numeric, smalldatetime,其他类型需要强制转换为TEXT。 返回类型:numeric 示例: 表中可以默认转为TEXT类型的某列的CHECKSUM值: 1 2 3 4 5 SELECT CHECKSUM(inv_quantity_on_hand) FROM tpcds.inventory; checksum ------------------- 24417258945265247 (1 row) 表中不能默认转为TEXT类型的某列的CHECKSUM值(注意此时CHECKSUM参数是列名::TEXT): 1 2 3 4 5 SELECT CHECKSUM(inv_quantity_on_hand::TEXT) FROM tpcds.inventory; checksum ------------------- 24417258945265247 (1 row) 表中所有列的CHECKSUM值。注意此时CHECKSUM参数是表名::TEXT,且表名前不加Schema: 1 2 3 4 5 SELECT CHECKSUM(inventory::TEXT) FROM tpcds.inventory; checksum ------------------- 25223696246875800 (1 row)
  • stddev_pop(expression) 描述:总体标准差。 当入参类型为DOUBLE PRECISION时,入参取值范围为1.34E-154~1.34E+154,若数值超过取值范围则报错:value out of range: overflow。如果实际使用中不可避免入参超出范围,则使用cast函数强转该列类型为numeric。 返回类型:对于浮点类型的输入返回double precision,其他输入返回numeric。 示例: 1 2 3 4 5 SELECT STDDEV_POP(inv_quantity_on_hand) FROM tpcds.inventory WHERE inv_warehouse_sk = 1; stddev_pop ------------------ 289.224294957556 (1 row)
  • stddev_samp(expression) 描述:样本标准差。 当入参类型为DOUBLE PRECISION时,入参取值范围为1.34E-154~1.34E+154,若数值超过取值范围则报错:value out of range: overflow。如果实际使用中不可避免入参超出范围,则使用cast函数强转该列类型为numeric。 返回类型:对于浮点类型的输入返回double precision,其他输入返回numeric。 示例: 1 2 3 4 5 SELECT STDDEV_SAMP(inv_quantity_on_hand) FROM tpcds.inventory WHERE inv_warehouse_sk = 1; stddev_samp ------------------ 289.224359757315 (1 row)
共100000条