华为云用户手册

  • ADM_TAB_STATS_HISTORY ADM_TAB_STATS_HISTORY系统视图提供数据库所有表的表统计信息历史。默认只有系统管理员权限才可以访问,普通用户需要授权才可以访问。该视图同时存在于PG_CATA LOG 和SYS Schema下。 表1 ADM_TAB_STATS_HISTORY字段 名称 类型 描述 owner character varying(128) 对象的拥有者。 table_name character varying(128) 表名。 partition_name character varying(128) 暂不支持,值为NULL。 subpartition_name character varying(128) 暂不支持,值为NULL。 stats_update_time timestamp(6) with time zone 统计信息更新的时间,数据库重启后,数据会丢失。 父主题: 其他系统视图
  • 语法格式 CREATE PLUGGABLE DATABASE pdb_name [ [ WITH ] { [ ENCODING [=] 'encoding' ] | [ LC_COLLATE [=] 'lc_collate' ] | [ LC_CTYPE [=] 'lc_ctype' ] | [ DBCOMPATIBILITY [=] 'compatibility_type' ] | [ DBTIMEZONE [=] 'time_zone' ] }];
  • 注意事项 不能在事务块中执行创建PDB的DDL语句,包括CREATE、ALTER、DROP。 只能在GUC参数enable_mtd为on的状态下使用。 只能在非PDB中进行该操作。不支持在M兼容数据库中执行该命令。 操作用户需要为gs_role_create_pdb的角色,或拥有sysadmin权限。 最多可以创建128个用户PDB。 在创建数据库过程中,出现类似“Permission denied”的错误提示,可能是由于文件系统上数据目录的权限不足。出现类似“No space left on device”的错误提示,可能是由于磁盘满引起的。 在兼容性选项缺省的情况下,将创建A兼容模式PDB。 若安装数据库实例时没有指定初始化账户密码,且初始化账户名字区分大小写,且新创建的PDB为M-Compatibility模式数据库的情况下,需要在开启并使用该PDB前,先在命令行执行以下语句,使数据库将双引号中的内容作为对象引用进行处理。语句执行后再开启并使用该PDB,按照提示重置始账户密码。 gs_guc set --pdbname my_pdb -Z datanode -N all -I all -c "sql_mode = 'ansi_quotes'" # my_pdb为新建的PDB名 (该举是为保证能正常为新PDB设置账户密码,后续操作可以按需重置sql_mode参数)
  • 参数说明 pdb_name PDB名称。 取值范围:字符串,要符合标识符命名规范。此外PDB名不能带“$”符号。 ENCODING [ = ] 'encoding' 可选。指定数据库使用的字符编码,可以是字符串(如'SQL_ASCII')、整数编号。 不指定时,对于M-Compatibility数据库,默认使用utf8编码;其他默认使用模板数据库的编码。模板数据库template0、template1和templatea的编码默认与操作系统环境相关。template1不允许修改字符编码,因此若要变更编码,A兼容模式数据库请使用templatea创建数据库, 非A兼容模式数据库请使用template0创建数据库。 常用取值:GBK、UTF8、Latin1、GB18030等。 LC_COLLATE [ = ] 'lc_collate' 可选。指定新数据库使用的字符集。例如,通过lc_collate = 'zh_CN.gbk'设定该参数。 该参数的使用会影响到对字符串的排序顺序(如使用ORDER BY执行,以及在文本列上使用索引的顺序)。默认是使用模板数据库的字符集。该参数对M-Compatibility数据库不生效。 取值范围:操作系统支持的字符集。 LC_CTYPE [ = ] 'lc_ctype' 可选。指定新数据库使用的字符分类。例如,通过lc_ctype = 'zh_CN.gbk'设定该参数。该参数的使用会影响到字符的分类,如大写、小写和数字。默认是使用模板数据库的字符分类。该参数对M-Compatibility数据库不生效。 取值范围:操作系统支持的字符分类。 DBCOMPATIBILITY [ = ] compatibility_type 可选。指定兼容的数据库的类型,默认兼容O。 取值范围:A、C、PG、M。分别表示兼容O、TD、POSTGRES和M-Compatibility。 DBTIMEZONE [ = ] time_zone 指定新数据库的时区。例如,通过DBTIMEZONE = '+00:00'设定该参数。该参数会影响新数据库的时区。默认设置为PRC时区。 前提条件:当前连接数据库是A兼容、a_format_version='10c'、a_format_dev_version='s2'。 取值范围:操作系统支持的时区名称和缩写或者-15:59到+15:00时间戳范围。
  • 语法格式 为当前会话设置会话用户标识符和当前用户标识符。 SET [ SESSION | LOCAL ] SESSION AUTHORIZATION role_name PASSWORD 'password'; 重置会话和当前用户标识符为初始认证的用户名。 {SET [ SESSION | LOCAL ] SESSION AUTHORIZATION DEFAULT | RESET SESSION AUTHORIZATION};
  • 参数说明 SESSION 声明这个命令只对当前会话起作用。 LOCAL 声明该命令只在当前事务中有效。 role_name 用户名。 取值范围:字符串,数据库中已经存在的用户名。 password 角色的密码。要求符合密码的命名规则。 使用密文密码限制如下: 管理员用户不能使用密文密码切换到其他管理员用户,只能向权限更低用户切换; 使用密文密码通常用于gs_dump、gs_dumpall导出场景,其他场景不建议直接使用密文密码。 DEFAULT 重置会话和当前用户标识符为初始认证的用户名。
  • PG_STAT_REPLICATION PG_STAT_REPLICATION视图显示日志同步线程的信息,如发起端发送日志位置,接收端接收日志位置等。 表1 PG_STAT_REPLICATION字段 名称 类型 描述 pid bigint 线程的PID。 usesysid oid 用户系统ID。 usename name 用户名。 application_name text 程序名称。 client_addr inet 客户端地址。 client_hostname text 客户端名。 client_port integer 客户端端口。 backend_start timestamp with time zone 程序启动时间。 state text 日志同步线程的状态: startup:线程正在启动。 catchup:线程正在建立备用服务器和主服务器的连接。 streaming:线程已建立备用服务器和主服务器的连接,正在进行数据的流复制。 backup:线程正在发送备份。 stopping:线程正在停止。 sender_sent_location text 发送端发送日志位置。 receiver_write_location text 接收端write日志位置。 receiver_flush_location text 接收端flush日志位置。 receiver_replay_location text 接收端replay日志位置。 sync_priority integer 同步复制的优先级(0表示异步)。 sync_state text 同步状态: async:异步复制。 sync:同步复制。 potential:该备用服务器现在是异步的,但假如一个当前的同步服务器发生故障,该服务器会变成同步的。 quorum:在同步与异步之间切换,保证备机中有大于一定数量的同步备机,同步备机数量一般为(n+1)/2-1,n为总副本个数。是否为同步备机取决于是否先接到了日志。详情可参考synchronous_standby_names参数描述。 父主题: 其他系统视图
  • _PG_FOREIGN_DATA_WRAPPERS 显示外部数据封装器的信息,如表1所示。该视图只有sysadmin权限可以查看。 表1 _PG_FOREIGN_DATA_WRAPPERS字段 名称 类型 描述 oid oid 外部数据封装器的oid。 fdwowner oid 外部数据封装器的所有者的oid。 fdwoptions text[] 外部数据封装器指定选项,使用“keyword=value”格式的字符串。 foreign_data_wrapper_catalog information_schema.sql_identifier 外部封装器所在的数据库名称(永远为当前数据库)。 foreign_data_wrapper_name information_schema.sql_identifier 外部数据封装器名称。 authorization_identifier information_schema.sql_identifier 外部数据封装器所有者的角色名称。 foreign_data_wrapper_language information_schema.character_data 外部数据封装器的实现语言。 父主题: Information Schema
  • 示例 修改模式的防篡改属性。 修改普通模式为防篡改模式,需设置GUC参数enable_ledger,用于控制是否启用账本数据库功能。参数使用请联系管理员处理。 --创建模式test_schema1。 gaussdb=# CREATE SCHEMA test_schema1; --修改模式test_schema1为防篡改模式。 gaussdb=# ALTER SCHEMA test_schema1 WITH BLOCKCHAIN; --查询模式信息,防篡改属性为true。 gaussdb=# \dn+ test_schema1 List of schemas Name | Owner | Access privileges | Description | WithBlockChain --------------+-------+-------------------+-------------+---------------- test_schema1 | omm | | | t (1 row) 修改模式名称。 --将模式test_schema1重命名为test_sch1。 gaussdb=# ALTER SCHEMA test_schema1 RENAME TO test_sch1; --查询模式信息。 gaussdb=# \dn+ test* List of schemas Name | Owner | Access privileges | Description | WithBlockChain -----------+-------+-------------------+-------------+---------------- test_sch1 | omm | | | t (1 row) 修改模式所有者。 --创建用户test_user。 gaussdb=# CREATE ROLE test_user PASSWORD '********'; --将模式test_sch1的所有者修改为test_user。 gaussdb=# ALTER SCHEMA test_sch1 OWNER TO test_user; --查询模式信息。 gaussdb=# \dn+ test_sch1; List of schemas Name | Owner | Access privileges | Description | WithBlockChain -----------+-----------+-------------------+-------------+---------------- test_sch1 | test_user | | | t (1 row) --删除。 gaussdb=# DROP SCHEMA test_sch1; gaussdb=# DROP ROLE test_user; 修改默认字符集和字符序。 仅在B模式数据库下(即sql_compatibility = 'B')支持该语法。 除binary字符集和字符序外,当前仅支持指定与数据库编码相同的字符集。 --创建并切换至测试数据库。 gaussdb=# CREATE DATABASE test1 WITH DBCOMPATIBILITY = 'B' ENCODING = 'UTF8' LC_COLLATE = 'zh_CN.utf8' LC_CTYPE = 'zh_CN.utf8'; gaussdb=# \c test1 --创建模式test_sch2。 test1=# CREATE SCHEMA test_sch2; --修改其默认字符为utf8mb4,默认字符序修改为utf8mb4_bin。 test1=# ALTER SCHEMA test_sch2 CHARACTER SET utf8mb4 COLLATE utf8mb4_bin; --删除。 test1=# DROP SCHEMA test_sch2; --切换至默认数据库。(根据实际情况修改数据库名) test1=# \c postgres gaussdb=# DROP DATABASE test1;
  • 参数说明 schema_name 现有模式的名称。 取值范围:已存在的模式名。 RENAME TO new_name 修改模式的名称。非系统管理员要改变模式的名称,则该用户必须在此数据库上有CREATE权限。 new_name:模式的新名称。 模式名不能和当前数据库里其他的模式重名。 模式名不能和当前数据库的初始用户重名。 模式的名称不可以“pg_”开头。 模式的名称不可以“gs_role_”开头。 取值范围:字符串,要符合标识符命名规范。 OWNER TO new_owner 修改模式的所有者。非系统管理员要改变模式的所有者,该用户还必须是新的所有角色的直接或间接成员, 并且该成员必须在此数据库上有CREATE权限。 new_owner:模式的新所有者。 取值范围:已存在的用户名/角色名。 { WITH | WITHOUT } BLOCKCHAIN 修改模式的防篡改属性,使用WITH选项为防篡改模式。具有防篡改属性模式下的普通行存表均为防篡改历史表,不包括外表,临时表,系统表。当该模式下不包含任何表时才可修改防篡改属性。另外,不支持临时表模式、toast表模式、dbe_perf模式、blockchain模式修改防篡改属性。只有模式中不包含任何表的情况下,才能使用该语法在普通模式和防篡改模式中互转。 修改普通模式为防篡改模式,需设置GUC参数enable_ledger为on,该参数默认值为off,级别为SIGHUP。
  • 注意事项 只有模式的所有者或者被授予了模式ALTER权限的用户有权限执行ALTER SCHEMA命令,三权分立开关关闭时,系统管理员默认拥有此权限。但要修改模式的所有者,当前用户必须是该模式的所有者或者系统管理员,且该用户是新所有者角色的成员。 对于除public以外的系统模式,如pg_catalog、sys等,只允许初始用户修改模式的所有者。修改系统自带模式的名称可能会导致部分功能不可用甚至影响数据库正常运行,默认情况下不允许修改系统自带模式的名称,考虑到前向兼容性,仅允许当系统在启动或升级过程中或参数allow_system_table_mods为on时修改。 除初始用户外,其他用户无法将schema的所有者修改为运维管理员。
  • GS_COMM_LISTEN_ADDRESS_EXT_INFO GS_COMM_LISTEN_ADDRESS_EXT_INFO描述了查询连接扩展IP的相关线程、会话、socket等DFX信息。当前不支持查询该视图。 表1 GS_COMM_LISTEN_ADDRESS_EXT_INFO字段 名称 类型 描述 node_name text 当前实例名。 app text 当前连接DN的客户端。 tid bigint 当前线程的线程号。 lwtid integer 当前线程的轻量级线程号。 query_id bigint 当前线程的查询ID。 socket integer 当前物理连接的socket fd。 remote_ip text 当前连接对端IP。 remote_port text 当前连接对端port。 local_ip text 当前连接本端IP。 local_port text 当前连接本端port。 父主题: 通信
  • GS_WORKLOAD_RULE_STAT GS_WORKLOAD_RULE_STAT系统视图记录SQL限流规则相关的信息。只有具有sysadmin权限的用户才可以访问此系统视图。多租场景下,non-PDB访问该视图时返回全部信息,PDB访问该视图时返回空列表。 表1 GS_WORKLOAD_RULE_STAT字段 名称 类型 描述 rule_id bigint 限流规则ID。 rule_name name 限流规则的名称,用于检索限流规则。 databases name[] 限流规则作用的数据库列表,为NULL表示对所有库生效。 rule_type text 限流规则类型,当前仅支持:“sqlid”、“select”、“insert”、“update”、“delete”、“merge”、“resource”,其他取值为非法值。 start_time timestamp with time zone 限流规则开始的时间,为NULL表示从现在开始生效。 end_time timestamp with time zone 限流规则结束的时间,为NULL表示一直生效。 max_workload bigint 限制规则设置的最大并发数。 option_val text[] 限流规则的参数值,包括:sqlid,关键字列表,资源限制情况。 详细请参见•gs_add_workload_rule(rule_type, rule_name, databases, start_time, end_time, max_workload, option_val)接口说明。 is_valid boolean 限流规则是否生效,超时的限流规则会设为false。 validate_count bigint 限流规则拦截SQL的次数。 node_names text[] 预留字段,限流规则生效的节点名称列表,当前不生效。 user_names text[] 预留字段,限流规则生效的用户名称列表,当前不生效。 父主题: 其他系统视图
  • 扩展函数 下表列举了 GaussDB 中支持的扩展函数,不作为商用特性交付,仅供参考。 分类 函数名称 描述 访问权限查询函数 has_sequence_privilege(user, sequence, privilege) 指定用户是否有访问序列的权限 has_sequence_privilege(sequence, privilege) 当前用户是否有访问序列的权限 触发器函数 pg_get_triggerdef(oid) 为触发器获取CREATE [ CONSTRAINT ] TRIGGER命令 pg_get_triggerdef(oid, boolean) 为触发器获取CREATE [ CONSTRAINT ] TRIGGER命令 父主题: 附录
  • ADM_CONS_COLUMNS ADM_CONS_COLUMNS视图显示数据库表中约束的信息。默认只有系统管理员权限才可以访问,普通用户需要授权才可以访问。该视图同时存在于PG_CATALOG和SYS Schema下。 表1 ADM_CONS_COLUMNS字段 名称 类型 描述 owner character varying(64) 约束创建者。 constraint_name character varying(64) 约束名。 table_name character varying(64) 约束相关的表名。 column_name character varying(64) 约束相关的列名。 position smallint 表中列的位置。 父主题: 其他系统视图
  • 示例 --创建拥有系统管理员权限的用户。 gaussdb=# CREATE USER user1 WITH SYSADMIN PASSWORD '********'; gaussdb=# SET ROLE user1 PASSWORD '********'; --创建公共dblink。 gaussdb=# CREATE PUBLIC DATABASE LINK public_dblink CONNECT TO 'user1' IDENTIFIED BY '********' USING (host '192.168.11.11',port '54399',dbname 'db01'); --创建普通用户。 gaussdb=# CREATE USER user2 PASSWORD '********'; --修改dblink对象信息。 gaussdb=# ALTER PUBLIC DATABASE LINK public_dblink CONNECT TO 'user2' IDENTIFIED BY '********'; --删除公共dblink。 gaussdb=# DROP PUBLIC DATABASE LINK public_dblink; --删除创建出的用户。 gaussdb=# RESET ROLE; gaussdb=# DROP USER user1; gaussdb=# DROP USER user2;
  • GS_MASKING_POLICY_FILTERS GS_MASKING_POLICY_FILTERS系统表记录动态数据脱敏策略对应的用户过滤条件,当用户条件满足FILTER条件时,对应的脱敏策略才会生效。需要有系统管理员或安全策略管理员权限才可以访问此系统表。 表1 GS_MASKING_POLICY_FILTERS表字段 名称 类型 描述 oid oid 行标识符(隐含属性,必须明确选择)。 filtertype name 过滤类型。目前值仅为logical_expr。 filterlabelname name 过滤范围。目前值仅为logical_expr。 policyoid oid 该条用户过滤条件所属的脱敏策略oid,对应GS_MASKING_POLICY中的oid。 modifydate timestamp without time zone 该条用户过滤条件创建或修改的最新时间戳。 logicaloperator text 过滤条件的波兰表达式。 父主题: 动态脱敏
  • 自动寻主场景 某客户存在一套集中式数据库实例,包含1主2备三个节点{node1,node2,node3},其中node1为主节点,node2、node3为备节点。 客户希望应用连接能建立在主DN上,并在发生主备切换时,自动选择新的主节点建连,则url可参考如下命令进行配置: jdbc:gaussdb://node1,node2,node3/database?targetServerType=master
  • 应用无损透明场景 计划内ALT 在数据库实例进行计划内维护(重启数据库实例、主备切换、节点重启、DN重启等操作)时,JDBC和DN的连接会断开。可以开启计划内ALT特性,实现连接保持功能,url中可参考如下命令进行配置。gns不支持浮动IP方式配置,不支持配置为127.0.0.1,不支持大小网映射场景(IP一致,端口不一致)。 只开启状态通知功能。 jdbc:gaussdb://node1/database?enableALT=true&gns=ip1:port1,ip2:port2,ip3:port3 开启加速连接以及快速断连功能。 jdbc:gaussdb://node1/database?enableALT=true&altLevel=C&gns=ip1:port1,ip2:port2,ip3:port3 开启加速连接、快速断连以及计划内维护功能。 jdbc:gaussdb://node1/database?enableALT=true&altLevel=P&gns=ip1:port1,ip2:port2,ip3:port3 计划外ALT 开启计划外ALT时,应该指定连接主DN。gns服务可选。 开启计划外ALT,不启用gns服务。 jdbc:gaussdb://node1/database?targetServerType=master&enableALT=true&altLevel=U 开启计划外ALT,启用gns服务,同时支持计划内ALT功能。 jdbc:gaussdb://node1/database?targetServerType=master&enableALT=true&altLevel=U&gns=ip1:port1,ip2:port2,ip3:port3
  • 高性能场景 某客户对于相同sql可能多次执行,仅是传参不同的情况,为了提升执行效率,可开启prepareThreshold参数,避免重复生成执行计划,url可参考如下命令进行配置: jdbc:gaussdb://node1/database?prepareThreshold=5 某客户一次查询1000万数据,为避免同时返回造成内存溢出,可使用defaultRowFetchSize,url可参考如下命令进行配置: jdbc:gaussdb://node1/database?defaultRowFetchSize=50000 某客户需要批量插入1000万数据,为提升效率,可使用batchMode,url可参考如下命令进行配置: jdbc:gaussdb://node1/database?batchMode=on
  • 容灾场景 某客户有两套数据库实例,其中A数据库实例为生产数据库实例,B数据库实例为容灾数据库实例。当客户执行容灾切换时,A数据库实例将降为容灾数据库实例,B数据库实例将升为生产数据库实例。此时为了避免修改配置文件导致的应用重启或重新发版,客户可在初始配置文件时,即将A、B数据库实例写入连接串中。此时在主数据库实例不可连接时,驱动将尝试对容灾数据库实例建连。例如A数据库实例为{node1,node2,node3}。B数据库实例为{node4,node5,node6}。 url可参考如下命令进行配置: jdbc:gaussdb://node1,node2,node3,node4,node5,node6/database?priorityServers=3
  • SQL发展简史 SQL发展简史如下: 1986年,ANSI X3.135-1986,ISO/IEC 9075:1986,SQL-86 1989年,ANSI X3.135-1989,ISO/IEC 9075:1989,SQL-89 1992年,ANSI X3.135-1992,ISO/IEC 9075:1992,SQL-92 1999年,ISO/IEC 9075:1999,SQL:1999 2003年,ISO/IEC 9075:2003,SQL:2003 2011年,ISO/IEC 9075:2011,SQL:2011 2016年,ISO/IEC 9075:2016,SQL:2016 2019年,ISO/IEC 9075:2019,SQL:2019
  • 什么是SQL SQL是用于访问和处理数据库的标准计算机语言。 SQL提供了各种任务的语句,包括: 查询数据。 在表中插入、更新和删除行。 创建、替换、更改和删除对象。 控制对数据库及其对象的访问。 保证数据库的一致性和完整性。 SQL语言由用于处理数据库和数据库对象的命令和函数组成。该语言还会强制实施有关数据类型、表达式和文本使用的规则。因此在SQL参考章节,除了SQL语法参考外,还介绍了有关数据类型、表达式、函数和操作符等信息。
  • 连接数据库涉及的API 在测试连接数据库成功后,ODBC API提供了一组函数来连接数据库,如表1所示。 表1 相关API说明 功能 API 申请句柄资源 SQLAllocHandle:申请句柄资源,可替代如下函数: SQLAllocEnv:申请环境句柄。 SQLAllocConnect:申请连接句柄。 SQLAllocStmt:申请语句句柄。 设置环境属性 SQLSetEnvAttr 设置连接属性 SQLSetConnectAttr 连接数据库 SQLConnect 以开发源程序DBtest.c为例(完整示例请参考获取和处理数据库中的数据): 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 // DBtest.c (compile with: libodbc.so) // 程序头文件和全局变量请参考完整示例 // 申请环境句柄。 V_OD_erg = SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,&V_OD_Env); if ((V_OD_erg != SQL_SUC CES S) && (V_OD_erg != SQL_SUCCESS_WITH_INFO)) { printf("Error AllocHandle\n"); exit(0); } // 设置版本信息(环境属性)。 SQLSetEnvAttr(V_OD_Env, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, 0); // 申请连接句柄 。 V_OD_erg = SQLAllocHandle(SQL_HANDLE_DBC, V_OD_Env, &V_OD_hdbc); if ((V_OD_erg != SQL_SUCCESS) && (V_OD_erg != SQL_SUCCESS_WITH_INFO)) { SQLFreeHandle(SQL_HANDLE_ENV, V_OD_Env); exit(0); } // 获取用户名和用户密码。 char *userName; userName = getenv("EXAMPLE_USERNAME_ENV"); char *password; password = getenv("EXAMPLE_PASSWORD_ENV"); // 设置连接属性。 SQLSetConnectAttr(V_OD_hdbc, SQL_ATTR_AUTOCOMMIT,(SQLPOINTER *)SQL_AUTOCOMMIT_ON, 0); // 连接数据库,这里的userName与password分别表示连接数据库的用户名和用户密码。 // 如果odbc.ini文件中已经配置了用户名密码,那么这里可以留空("");但是不建议这么做,因为一旦odbc.ini权限管理不善,将导致数据库用户密码泄露。 V_OD_erg = SQLConnect(V_OD_hdbc, (SQLCHAR*) "gaussdb", SQL_NTS, (SQLCHAR*) userName, SQL_NTS, (SQLCHAR*) password, SQL_NTS); if ((V_OD_erg != SQL_SUCCESS) && (V_OD_erg != SQL_SUCCESS_WITH_INFO)) { printf("Error SQLConnect %d\n",V_OD_erg); SQLFreeHandle(SQL_HANDLE_ENV, V_OD_Env); exit(0); } printf("Connected !\n"); 父主题: 连接数据库
  • ADM_IND_SUBPARTITIONS ADM_IND_SUBPARTITIONS视图显示数据库中所有二级分区表Local索引的索引分区信息(不包含分区表全局索引)。数据库中每个二级分区表的Local索引的索引分区(如果存在的话)都会在ADM_IND_SUBPARTITIONS里有一行记录。默认只有系统管理员权限才可以访问,普通用户需要授权才可以访问。该视图同时存在于PG_CATALOG和SYS Schema下。 表1 ADM_IND_SUBPARTITIONS字段 名称 类型 描述 index_owner character varying(64) 索引分区所属分区表索引的所有者的名称。 index_name character varying(64) 索引分区所属分区表索引的名称。 partition_name character varying(64) 索引所在一级分区的名称。 subpartition_name character varying(64) 索引所在二级分区的名称。 def_tablespace_name name 索引分区的表空间名称。 high_value text 索引分区所对应分区的边界值。 对于范围分区和间隔分区,显示各分区的上边界值。 对于列表分区,显示各分区的取值列表。 对于哈希分区,显示各分区的编号。 index_partition_usable boolean 索引分区是否可用。 t(true):可用。 f(false):不可用。 schema character varying(64) 索引分区所属分区表索引的模式。 high_value_length integer 索引分区所对应分区的边界的字符长度。 partition_position numeric 索引分区在索引中的位置。 subpartition_position numeric 二级分区在分区中的位置。 status character varying(8) 索引分区是否可用。 tablespace_name name 索引分区的表空间名称。 pct_free numeric 块中最小可用空间百分比。 ini_trans numeric 初始事务数,默认值为4,非USTORE分区表时为NULL。 max_trans numeric 最大事务数,默认值为128,非USTORE分区表时为NULL。 initial_extent numeric 暂不支持,值为NULL。 next_extent numeric 暂不支持,值为NULL。 min_extent numeric 暂不支持,值为NULL。 max_extent numeric 暂不支持,值为NULL。 max_size numeric 暂不支持,值为NULL。 pct_increase numeric 暂不支持,值为NULL。 freelists numeric 暂不支持,值为NULL。 freelist_groups numeric 暂不支持,值为NULL。 logging character varying(7) 是否记录对索引的更改。 compression character varying(13) 用于二级分区的压缩类型。 blevel numeric 暂不支持,值为NULL。 leaf_blocks numeric 暂不支持,值为NULL。 distinct_keys numeric 暂不支持,值为NULL。 avg_leaf_blocks_per_key numeric 暂不支持,值为NULL。 avg_data_blocks_per_key numeric 暂不支持,值为NULL。 clustering_factor numeric 根据索引的值表示表中行的顺序。需要通过执行analyze进行统计。 num_rows numeric 二级分区中的行数。需要通过执行vacuum进行统计。 sample_size numeric 暂不支持,值为NULL。 last_analyzed timestamp with time zone 最近分析此分区的日期。 buffer_pool character varying(7) 二级分区的缓冲池。 flash_cache character varying(7) 暂不支持,值为NULL。 cell_flash_cache character varying(7) 暂不支持,值为NULL。 user_stats character varying(3) 暂不支持,值为NULL。 global_stats character varying(3) 暂不支持,值为NULL。 interval character varying(3) 分区是否在间隔分区表的间隔节中。 segment_created character varying(3) 索引分区段是否已创建。 domidx_opstatus character varying(6) 暂不支持,值为NULL。 parameters character varying(1000) 暂不支持,值为NULL。 父主题: 分区表
  • DBE_PLDEBUGGER.error_backtrace server端因为存储过程报错断住,可以在debug端调用error_backtrace,查看当前的函数调用堆栈(限制报错断住时使用),如表1所示。 表1 error_backtrace返回值列表 名称 类型 描述 frameno OUT integer 调用栈编号。 funcname OUT text 函数名。 lineno OUT integer 行号。 query OUT text 断点内容。 funcoid OUT oid 函数oid。 父主题: DBE_PLDEBUGGER Schema
  • 参数说明 expression 用于计算或插入结果表指定地点的常量或者表达式。 在一个出现在INSERT顶层的VALUES列表中,expression可以被DEFAULT替换以表示插入目的字段的缺省值。除此以外,当VALUES出现在其他场合的时候是不能使用DEFAULT的。 sort_expression 一个表示如何排序结果行的表达式或者整数常量。 ASC 指定按照升序排列。 DESC 指定按照降序排列。 operator 一个排序操作符。 count 返回的最大行数。 OFFSET start [ ROW | ROWS ] 声明返回的最大行数,而start声明开始返回行之前忽略的行数。 FETCH { FIRST | NEXT } [ count ] { ROW | ROWS } ONLY FETCH子句限定返回查询结果从第一行开始的总行数,count的缺省值为1。
  • 示例 --建表。 gaussdb=# CREATE TABLE test_t2(col1 INT,col2 VARCHAR); gaussdb=# CREATE TABLE test_t3(col1 INT,col2 VARCHAR); --插入多条数据。 gaussdb=# INSERT INTO test_t2 (col1, col2) VALUES (10,'AA'),(20,'BB'),(30,'CC'); --分页查询,返回第一页,每页显示1行数据。 gaussdb=# SELECT * FROM test_t2 ORDER BY col1 ASC LIMIT 1 OFFSET 0; col1 | col2 ------+------ 10 | AA (1 row) --把test_t2中的数据插入到test_t3中。 gaussdb=# INSERT INTO test_t3 SELECT * FROM test_t2; --结合FETCH查询,返回第一页,每页显示1行数据。 gaussdb=# SELECT * FROM test_t3 ORDER BY col1 ASC OFFSET 0 FETCH FIRST 1 ROWS ONLY; col1 | col2 ------+------ 10 | AA (1 row) --删除表test_t2、test_t3。 gaussdb=# DROP TABLE test_t2; gaussdb=# DROP TABLE test_t3;
  • 语法格式 VALUES {( expression [, ...] )} [, ...] [ ORDER BY { sort_expression [ ASC | DESC | USING operator ] } [, ...] ] [ LIMIT { count | ALL } ] [ OFFSET start [ ROW | ROWS ] ] [ FETCH { FIRST | NEXT } [ count ] { ROW | ROWS } ONLY ];
  • date_part date_part('field', source) 描述:date_part函数是在传统的Ingres函数的基础上制作的(该函数等效于SQL标准函数extract)。 参数:field参数是一个字符串,而不是一个名称。有效的field与extract一致,详细信息请参见EXTRACT。 示例: 1 2 3 4 5 gaussdb=# SELECT date_part('day', TIMESTAMP '2001-02-16 20:38:40'); date_part ----------- 16 (1 row) 1 2 3 4 5 gaussdb=# SELECT date_part('hour', INTERVAL '4 hours 3 minutes'); date_part ----------- 4 (1 row)
共100000条
提示

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