华为云用户手册

  • SQL语法文本格式约定 为了方便对语法使用的理解,在文档中对SQL语法文本按如下格式进行表述。 格式 意义 大写 语法关键字(语句中保持不变、必须与语法格式一致的部分)采用大写表示。 小写 参数(语句中必须由实际值进行替代的部分)采用小写表示。 [ ] 可选语法项。表示用“[ ]”括起来的部分是可选的。 { } 必选语法项。 ... 表示前面的元素可重复出现。 [ x | y | ... ] 表示从两个或多个选项中选取一个或者不选。 { x | y | ... } 表示从两个或多个选项中选取一个。 [x | y | ... ] [ ... ] 表示可选多个参数或者不选,如果选择多个参数,则参数之间用空格分隔。 [ x | y | ... ] [ ,... ] 表示可选多个参数或者不选,如果选择多个参数,则参数之间用逗号分隔。 { x | y | ... } [ ... ] 表示可选多个参数,至少选一个,如果选择多个参数,则参数之间以空格分隔。 { x | y | ... } [ ,... ] 表示可选多个参数,至少选一个,如果选择多个参数,则参数之间用逗号分隔。
  • 示例 创建表reason_t2,并向表中插入数据: 1 2 3 4 5 6 7 8 910111213 CREATE TABLE reason_t2( a int primary key, b int, c int);INSERT INTO reason_t2 VALUES (1, 2, 3);SELECT * FROM reason_t2 ORDER BY 1; a | b | c---+---+--- 1 | 2 | 3 (1 rows) 向表reason_t2中插入两条数据,一条有冲突,一条无冲突。有冲突的数据进行忽略,无冲突的数据进行插入: 1234567 INSERT INTO reason_t2 VALUES (1, 4, 5),(2, 6, 7) ON CONFLICT(a) DO NOTHING;SELECT * FROM reason_t2 ORDER BY 1; a | b | c---+---+---- 1 | 2 | 3 2 | 6 | 7(2 rows) 向表reason_t2中插入数据,一条有冲突,一条无冲突。有冲突的数据进行更新,无冲突的数据进行插入: 12345678 INSERT INTO reason_t2 VALUES (1, 4, 5),(3, 8, 9) ON CONFLICT(a) DO UPDATE SET b = EXCLUDED.b, c = EXCLUDED.c;SELECT * FROM reason_t2 ORDER BY 1; a | b | c---+---+---- 1 | 4 | 5 2 | 6 | 7 3 | 8 | 9 (3 rows) 根据过滤条件筛选被更新的行: 12345678 INSERT INTO reason_t2 VALUES (2, 7, 8) ON CONFLICT (a) DO UPDATE SET b = excluded.b, c = excluded.c WHERE reason_t2.c = 7;SELECT * FROM reason_t2 ORDER BY 1; a | b | c---+---+--- 1 | 4 | 5 2 | 7 | 8 3 | 8 | 9(3 rows) 向表reason_t中插入数据,有冲突的数据进行更新并调整更新映射关系,即c列更新到b,b列更新到c: 12345678 INSERT INTO reason_t2 VALUES (1, 2, 3) ON CONFLICT (a) DO UPDATE SET b = excluded.c, c = excluded.b;SELECT * FROM reason_t2 ORDER BY 1; a | b | c---+---+--- 1 | 3 | 2 2 | 7 | 8 3 | 8 | 9(3 rows)
  • 语法格式 详细介绍请参见INSERT的语法格式。有两种UPSERT语法格式: 表1 UPSERT语法格式 语法格式 冲突更新 冲突忽略 第一种:不指定索引 INSERT INTO ON DUPLICATE KEY UPDATE INSERT IGNOREINSERT INTO ON CONFLICT DO NOTHING 第二种:从指定列名或者约束上可以推断唯一约束 INSERT INTO ON CONFLICT(...) DO UPDATE SETINSERT INTO ON CONFLICT ON CONSTRAINT con_name DO UPDATE SET INSERT INTO ON CONFLICT(...) DO NOTHINGINSERT INTO ON CONFLICT ON CONSTRAINT con_name DO NOTHING
  • RoaringBitmap类型 GaussDB (DWS)自8.1.3集群版本开始,支持RoaringBitmap数据类型,用于存储位图数据集。 roaringbitmap数据类型支持行存,列存表。 表1 RoaringBitmap类型 名字 存储容量 描述 范围 RoaringBitmap 32 字节 存储位图数据集 -2,147,483,648~2,147,483,647 示例:创建带有roaringbitmap数据类型的表。 12 CREATE TABLE r_row (a int ,b text, c roaringbitmap);CREATE TABLE r_col (a int ,b text, c roaringbitmap) with (orientation=column); 父主题: 数据类型
  • rb_xor_cardinality_agg(roaringbitmap) 描述:将分组内的roaringbitmap按照异或的逻辑合并后的基数。 示例: 1 2 3 4 5 6 7 8 91011121314 SELECT a, rb_xor_cardinality_agg(b) FROM r1 GROUP BY a ORDER BY 1; a | rb_xor_cardinality_agg----+------------------------ 1 | 0 2 | 1 3 | 1 4 | 1 5 | 1 6 | 1 7 | 1 8 | 1 9 | 1 10 | 1(10 rows)
  • rb_and_agg(roaringbitmap) 描述:将分组内的roaringbitmap数据按照交的操作聚合成一个roaringbitmap集合。 示例: 1 2 3 4 5 6 7 8 9101112131415161718 CREATE TABLE r1(a int ,b roaringbitmap);INSERT INTO r1 SELECT a, rb_build_agg(b) FROM t1 GROUP BY a;INSERT INTO t1 SELECT generate_series(1,10),generate_series(1,20,4);INSERT INTO r1 SELECT a, rb_build_agg(b) FROM t1 GROUP BY a;SELECT a, rb_to_array(rb_and_agg(b)) FROM r1 GROUP BY a ORDER BY a; a | rb_to_array----+------------- 1 | {1} 2 | {3} 3 | {5} 4 | {7} 5 | {9} 6 | {11} 7 | {13} 8 | {15} 9 | {17}10 | {19}(10 rows)
  • rb_and_cardinality_agg(roaringbitmap) 描述:分组内的roaringbitmap按照交集计算后的基数。 返回值类型:int 示例: 1 2 3 4 5 6 7 8 91011121314 SELECT a, rb_and_cardinality_agg(b) FROM r1 GROUP BY a ORDER BY 1; a | rb_and_cardinality_agg----+------------------------ 1 | 1 2 | 1 3 | 1 4 | 1 5 | 1 6 | 1 7 | 1 8 | 1 9 | 1 10 | 1(10 rows)
  • rb_or_cardinality_agg(roaringbitmap) 描述:将分组内的roaringbitmap按照并集计算后的基数。 示例: 1 2 3 4 5 6 7 8 91011121314 SELECT a, rb_or_cardinality_agg(b) FROM r1 GROUP BY a ORDER BY 1; a | rb_or_cardinality_agg----+----------------------- 1 | 1 2 | 2 3 | 2 4 | 2 5 | 2 6 | 2 7 | 2 8 | 2 9 | 2 10 | 2(10 rows)
  • rb_build_agg(int) 描述:将分组内的int值聚合成一个roaringbitmap值。 返回值类型:roaringbitmap 示例: 123456 CREATE TABLE t1 (a int ,b int);NOTICE: The 'DISTRIBUTE BY' clause is not specified. Using round-robin as the distribution mode by default.HINT: Please use 'DISTRIBUTE BY' clause to specify suitable data distribution column.CREATE TABLEINSERT INTO t1 SELECT generate_series(1,10),generate_series(1,20,2);INSERT 0 10 1 2 3 4 5 6 7 8 91011121314 SELECT rb_iterate(rb_build_agg(b)) FROM t1;rb_iterate------------135791113151719(10 rows)
  • rb_or_agg(roaringbitmap) 描述:将分组内的roaringbitmap按照并的逻辑组合成一个roaringbitmap。 示例: 1 2 3 4 5 6 7 8 91011121314 SELECT a, rb_to_array(rb_or_agg(b)) FROM r1 GROUP BY a ORDER BY a; a | rb_to_array----+------------- 1 | {1} 2 | {3,5} 3 | {5,9} 4 | {7,13} 5 | {9,17} 6 | {1,11} 7 | {5,13} 8 | {9,15} 9 | {13,17} 10 | {17,19}(10 rows)
  • rb_xor_agg(roaringbitmap) 描述:将分组内的roaringbitmap按照异或的逻辑组合成一个roaringbitmap。 示例: 1 2 3 4 5 6 7 8 91011121314 SELECT a, rb_to_array(rb_xor_agg(b)) FROM r1 GROUP BY a ORDER BY a;a | rb_to_array----+------------- 1 | {} 2 | {5} 3 | {9} 4 | {13} 5 | {17} 6 | {1} 7 | {5} 8 | {9} 9 | {13} 10 | {17}(10 rows)
  • ts_rank([ weights float4[], ] vector tsvector, query tsquery [, normalization integer ]) 描述:文档查询排名。 返回类型:float4 示例: 12345 SELECT ts_rank('hello world'::tsvector, 'world'::tsquery); ts_rank ---------- .0607927(1 row)
  • ts_rewrite(query tsquery, target tsquery, substitute tsquery) 描述:替换目标tsquery类型的单词。 返回类型:tsquery 示例: 12345 SELECT ts_rewrite('a & b'::tsquery, 'a'::tsquery, 'foo|bar'::tsquery); ts_rewrite ------------------------- 'b' & ( 'foo' | 'bar' )(1 row)
  • to_tsvector([ config regconfig , ] document text) 描述:去除文件信息,并转换为tsvector类型。 返回类型:tsvector 示例: 12345 SELECT to_tsvector('english', 'The Fat Rats'); to_tsvector ----------------- 'fat':2 'rat':3(1 row)
  • ts_rank_cd([ weights float4[], ] vector tsvector, query tsquery [, normalization integer ]) 描述:排序文件查询使用覆盖密度。 返回类型:float4 示例: 12345 SELECT ts_rank_cd('hello world'::tsvector, 'world'::tsquery); ts_rank_cd ------------ 0(1 row)
  • setweight(tsvector, "char") 描述:给tsvector类型的每个元素分配权值。 返回类型:tsvector 示例: 12345 SELECT setweight('fat:2,4 cat:3 rat:5B'::tsvector, 'A'); setweight ------------------------------- 'cat':3A 'fat':2A,4A 'rat':5A(1 row)
  • ts_rewrite(query tsquery, select text) 描述:使用SELECT命令的结果替代目标中tsquery类型的单词。 返回类型:tsquery 示例: 12345 SELECT ts_rewrite('world'::tsquery, 'select ''world''::tsquery, ''hello''::tsquery'); ts_rewrite ------------ 'hello'(1 row)
  • plainto_tsquery([ config regconfig , ] query text) 描述:产生tsquery类型的词汇,并忽略标点。 返回类型:tsquery 示例: 12345 SELECT plainto_tsquery('english', 'The Fat Rats'); plainto_tsquery ----------------- 'fat' & 'rat'(1 row)
  • - 描述:减 示例: 1 2 3 4 5 6 7 8 910 SELECT inet '192.168.1.43' - 36 AS RESULT; result ------------- 192.168.1.7(1 row)SELECT inet '192.168.1.43' - inet '192.168.1.19' AS RESULT; result -------- 24(1 row)
  • pgxc_lock_for_backup() 描述:备份前给集群加锁,备份是为了在新增节点上执行恢复操作。 返回值类型:boolean pgxc_lock_for_backup是在使用gs_dump或gs_dumpall工具备份集群前,用来给集群加锁的。当给集群加锁后,不允许有改变系统结构的操作。该函数不影响DML语句。 示例: 12345 SELECT pgxc_lock_for_backup(); pgxc_lock_for_backup---------------------- t(1 row)
  • pg_switch_xlog() 描述:切换到一个新的事务日志文件。(需要管理员角色) 返回值类型:text 备注:pg_switch_xlog移动到下一个事务日志文件,以允许将当前日志文件归档(假定使用连续归档)。返回值是刚完成的事务日志文件的事务日志结束位置+1。如果从最后一次事务日志切换以来没有活动的事务日志,则pg_switch_xlog什么事也不做,直接返回当前事务日志文件的开始位置。 示例: 12345 SELECT pg_switch_xlog(); pg_switch_xlog---------------- 0/45017978(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_create_restore_point(name text) 描述:为执行恢复创建一个命名点。(需要管理员角色) 返回值类型:text 备注:pg_create_restore_point创建了一个可以用作恢复目的、有命名的事务日志记录,并返回相应的事务日志位置。在恢复过程中,recovery_target_name可以通过这个名称定位对应的日志恢复点,并从此处开始执行恢复操作。避免使用相同的名称创建多个恢复点,因为恢复操作将在第一个匹配(恢复目标)的名称上停止。
  • pg_start_backup(label text [, fast boolean ]) 描述:开始执行在线备份。(需要管理员角色或复制的角色) 返回值类型:text 备注:pg_start_backup接受一个用户定义的备份标签(通常这是备份转储文件存放地点的名字)。这个函数向数据库集群的数据目录写入一个备份标签文件,然后以文本方式返回备份的事务日志起始位置。 12345 SELECT pg_start_backup('label_goes_here'); pg_start_backup----------------- 0/3000020(1 row)
  • pg_cbm_recycle_file(slotName name, targetLSNArg text) 描述:删除不再使用的cbm文件,并返回删除后的第一条lsn。其中,slotName为空字符串时,将直接使用targetLSNArg作为回收点;在备份和容灾时,因为并行因素,需要指定相应的slotName,首先记录该任务的targetLSNArg到该slot中,然后遍历所有的backup slots,找到最小的lsn作为回收点。 返回值类型:text
  • pg_current_xlog_location() 描述:获取当前事务日志的写入位置。 返回值类型:text 备注:pg_current_xlog_location使用与前面那些函数相同的格式显示当前事务日志的写入位置。如果是只读操作,不需要系统管理员权限。 示例: 12345 SELECT pg_current_xlog_location(); pg_current_xlog_location-------------------------- 0/4310D5D8(1 row)
  • pg_stop_backup() 描述:完成执行在线备份。(需要管理员角色或复制的角色) 返回值类型:text 备注:pg_stop_backup删除pg_start_backup创建的标签文件,并且在事务日志归档区里创建一个备份历史文件。这个历史文件包含给予pg_start_backup的标签、备份的事务日志起始与终止位置、备份的起始和终止时间。返回值是备份的事务日志终止位置。计算出中止位置后,当前事务日志的插入点将自动前进到下一个事务日志文件,这样,结束的事务日志文件可以被立即归档从而完成备份。 示例: 12345 SELECT pg_stop_backup(); pg_stop_backup---------------- 0/4401E610(1 row)
  • pg_xlogfile_name_offset(location text) 描述:将事务日志的位置字符串转换为文件名并返回在文件中的字节偏移量。 返回值类型:text,integer 备注:可以使用pg_xlogfile_name_offset从前述函数的返回结果中抽取相应的事务日志文件名称和字节偏移量。例如: 1234567 SELECT * FROM pg_xlogfile_name_offset(pg_stop_backup());NOTICE: pg_stop_backup cleanup done, waiting for required WAL segments to be archivedNOTICE: 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显示当前事务日志的插入位置。插入点是事务日志在某个瞬间的“逻辑终点”,而实际的写入位置则是从服务器内部缓冲区写出时的终点。写入位置是可以从服务器外部检测到的终点,如果要归档部分完成事务日志文件,则该操作即可实现。插入点主要用于服务器调试目的。如果是只读操作,不需要系统管理员权限。 示例: 12345 SELECT pg_current_xlog_insert_location(); pg_current_xlog_insert_location--------------------------------- 0/4316AD50(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,表是否被删除,表是否被创建,表是否被截断,表被截断后的页面数,有多少页被修改以及被修改的页号的列表。
共100000条
提示

您即将访问非华为云网站,请注意账号财产安全