华为云用户手册

  • GLOBAL_CLEAR_BAD_BLOCK_INFO GLOBAL_CLEAR_BAD_BLOCK_INFO视图,在CN上执行,用于清理所有实例中已修复的损坏页面的信息,在DN上执行结果为空。默认只有初始用户、具有sysadmin属性的用户、在运维模式下具有运维管理员属性的用户以及监控用户可以查看,其余用户需要赋权后才可以使用。 表1 GLOBAL_BAD_BLOCK_INFO字段 名称 类型 描述 node_name text 当前清理修复页面的节点信息。 result boolean 当前实例清理修复页面执行的结果。 父主题: 系统视图
  • 示例 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 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 --创建存储过程proc_staffs gaussdb=# CREATE OR REPLACE PROCEDURE proc_staffs ( section NUMBER(6), salary_sum out NUMBER(8,2), staffs_count out INTEGER ) IS BEGIN SELECT sum(salary), count(*) INTO salary_sum, staffs_count FROM hr.staffs where section_id = section; END; / CREATE PROCEDURE --创建存储过程proc_return. gaussdb=# CREATE OR REPLACE PROCEDURE proc_return AS v_num NUMBER(8,2); v_sum INTEGER; BEGIN proc_staffs(30, v_sum, v_num); --调用语句 dbe_output.print_line(v_sum||'#'||v_num); RETURN; --返回语句 END; / --调用存储过程proc_return. gaussdb=# CALL proc_return(); 30#2.00 proc_return ------------- (1 row) --清除存储过程 gaussdb=# DROP PROCEDURE proc_staffs; gaussdb=# DROP PROCEDURE proc_return; --创建函数func_return. gaussdb=# CREATE OR REPLACE FUNCTION func_return returns void language plpgsql AS $$ DECLARE v_num INTEGER := 1; BEGIN dbe_output.print_line(v_num); RETURN; --返回语句 END $$; CREATE FUNCTION -- 调用函数func_return gaussdb=# CALL func_return(); 1 func_return ------------- (1 row) -- 清除函数 gaussdb=# DROP FUNCTION func_return;
  • ADM_PROCEDURES ADM_PROCEDURES视图显示数据库中所有存储过程、函数和触发器的信息。默认只有系统管理员权限才可以访问此系统视图,普通用户需要授权才可以访问。该视图同时存在于PG_CATA LOG 和SYS Schema下。 表1 ADM_PROCEDURES字段 名称 类型 描述 owner character varying(64) 存储过程、或函数、或触发器、或包的所有者。 object_name character varying(64) 存储过程、或函数、或触发器的名称,若为包中函数或存储过程,则为包名。 procedure_name character varying(128) 若object_name为包名,则为包中函数或存储过程名称,其余为空。 object_id oid 存储过程、或函数、或触发器、或包的oid。 subprogram_id numeric 如果为包中函数或存储过程,则表示在包中的位置,其余为空。 overload character varying(40) 表示该函数是该名称的第n个重载函数。 object_type character varying(13) 对象的类型名。 aggregate character varying(3) 表示是否为聚合函数: YES:表示是。 NO:表示不是。 pipelined character varying(3) 暂不支持,值为NO。 impltypeowner character varying(128) 实现类型的所有者。 impltypename character varying(128) 实现类型的名称。 parallel character varying(3) 暂不支持,值为NO。 interface character varying(3) 暂不支持,值为NO。 deterministic character varying(3) 暂不支持,值为NO。 authid character varying(12) 表示是使用创建者权限还是调用者权限: DEFINER:表示使用创建者权限。 CURRENT_USER:表示使用调用者权限。 因该字段与保留关键字冲突,调用该字段需加视图名。 result_cache character varying(3) 暂不支持,值为NULL。 origin_con_id character varying(256) 暂不支持,值为0。 polymorphic character varying(5) 暂不支持,值为NULL。 argument_number smallint 存储过程入参个数。 父主题: 系统视图
  • STATIO_ALL_INDEXES STATIO_ALL_INDEXES视图包含数据库中的每个索引行,显示特定索引的I/O的统计。 表1 STATIO_ALL_INDEXES字段 名称 类型 描述 relid oid 索引的表的OID。 indexrelid oid 该索引的OID。 schemaname name 该索引的模式名。 relname name 该索引的表名。 indexrelname name 索引名称。 idx_blks_read bigint 从索引中读取的磁盘块数。 idx_blks_hit bigint 索引命中缓存数。 父主题: Cache/IO
  • enable_default_cfunc_libpath 参数说明:设置 GaussDB 创建C函数时的so文件是否使用默认路径。 该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 取值范围:布尔型 on:代表创建C函数时,so文件必须放在指定的目录($libdir/proc_srclib)下。 off:代表创建C函数时,so文件可以放在任意可访问的目录下。 默认值:on 参数设置成off时,.so文件可以放在任意可访问的目录下或使用系统自带的.so,存在安全风险,不建议使用。
  • 参数说明 role_name 现有角色名。 取值范围:已存在的用户名,如果角色名中包含大写字母则需要使用双引号括起来。 IN DATABASE database_name 表示修改角色在指定数据库上的参数。 SET configuration_parameter 设置角色的参数。ALTER ROLE中修改的会话参数只针对指定的角色,且在下一次该角色启动的会话中有效。 取值范围: configuration_parameter和value的取值请参见SET。 DEFAULT:表示清除configuration_parameter参数的值,configuration_parameter参数的值将继承本角色新产生的SESSION的默认值。 FROM CURRENT:取当前会话中的值设置为configuration_parameter参数的值。 RESET configuration_parameter/ALL 清除configuration_parameter参数的值。与SET configuration_parameter TO DEFAULT的效果相同。 取值范围:ALL表示清除所有参数的值。 ACCOUNT LOCK | ACCOUNT UNLOCK ACCOUNT LOCK:锁定账户,禁止登录数据库。 ACCOUNT UNLOCK:解锁账户,允许登录数据库。 PGUSER 当前版本不允许修改角色的PGUSER属性 PASSWORD/IDENTIFIED BY 'password' 重置或修改用户密码。除了初始用户外其他管理员或普通用户修改自己的密码需要输入正确的旧密码。只有初始用户、系统管理员(sysadmin)或拥有创建用户(CREATEROLE)权限的用户才可以重置普通用户密码,无需输入旧密码。初始用户可以重置系统管理员的密码,系统管理员不允许重置其他系统管理员的密码。应当使用单引号将用户密码括起来。 EXPIRED 设置密码失效。只有初始用户、系统管理员(sysadmin)或拥有创建用户(CREATEROLE)权限的用户才可以设置用户密码失效,其中系统管理员也可以设置自己或其他系统管理员密码失效。不允许设置初始用户密码失效。 密码失效的用户可以登录数据库但不能执行查询操作,只有修改密码或由管理员重置密码后才可以恢复正常查询操作。 其他参数请参见CREATE ROLE的参数说明。
  • 语法格式 修改角色的权限。 ALTER ROLE role_name [ [ WITH ] option [ ... ] ]; 其中权限项子句option为。 {CREATEDB | NOCREATEDB} | {CREATEROLE | NOCREATEROLE} | {INHERIT | NOINHERIT} | {AUDITADMIN | NOAUDITADMIN} | {SYSADMIN | NOSYSADMIN} | {MONADMIN | NOMONADMIN} | {OPRADMIN | NOOPRADMIN} | {POLADMIN | NOPOLADMIN} | {USEFT | NOUSEFT} | {LOGIN | NOLOGIN} | {REPLICATION | NOREPLICATION} | {VCADMIN | NOVCADMIN} | {PERSISTENCE | NOPERSISTENCE} | CONNECTION LIMIT connlimit | [ ENCRYPTED | UNENCRYPTED ] PASSWORD 'password' [EXPIRED] | [ ENCRYPTED | UNENCRYPTED ] IDENTIFIED BY 'password' [ REPLACE 'old_password' | EXPIRED ] | [ ENCRYPTED | UNENCRYPTED ] PASSWORD { 'password' | DISABLE | EXPIRED } | [ ENCRYPTED | UNENCRYPTED ] IDENTIFIED BY { 'password' [ REPLACE 'old_password' ] | DISABLE } | VALID BEGIN 'timestamp' | VALID UNTIL 'timestamp' | RESOURCE POOL 'respool' | PERM SPACE 'spacelimit' | PGUSER 修改角色的名称。 ALTER ROLE role_name RENAME TO new_name; 锁定或解锁。 ALTER ROLE role_name ACCOUNT { LOCK | UNLOCK }; 设置角色的配置参数。 ALTER ROLE role_name [ IN DATABASE database_name ] SET configuration_parameter {{ TO | = } { value | DEFAULT } | FROM CURRENT}; 重置角色的配置参数。 ALTER ROLE role_name [ IN DATABASE database_name ] RESET {configuration_parameter|ALL};
  • 参数说明 IF EXISTS IF EXISTS表示,如果函数存在则执行删除操作,函数不存在也不会报错,只是发出一个notice。 function_name 要删除的函数名称。 取值范围:已存在的函数名。 argmode 函数参数的模式。 argname 函数参数的名称。 argtype 函数参数的类型 CASCADE | RESTRICT CASCADE:级联删除依赖于函数的对象 。 RESTRICT:如果有任何依赖对象存在,则拒绝删除该函数(缺省行为)。
  • ADM_HIST_SQLTEXT ADM_HIST_SQLTEXT视图描述当前节点的执行语句的信息。默认只有系统管理员权限才可以访问此系统视图,普通用户需要授权才可以访问。该视图同时存在PG_CATALOG和SYS Schema下。 WDR Snapshot启动(即GUC参数enable_wdr_snapshot为on时)后,用户可以查看此视图中的数据。 表1 ADM_HIST_SQLTEXT字段 名称 类型 描述 dbid integer 数据库ID。 sql_id bigint 查询标识。 sql_text clob 查询对应文本。 command_type integer 暂不支持,值为0。 con_dbid integer 容器数据库ID,目前与dbid取值相同。 con_id integer 容器ID,目前不支持容器,值为0。 父主题: 系统视图
  • 函数支持自治事务 自治事务可以在函数中定义,标识符为PRAGMA AUTONOMOUS_TRANSACTION,其余语法与函数语法相同,示例如下。 gaussdb=# create table t4(a int, b int, c text); NOTICE: The 'DISTRIBUTE BY' clause is not specified. Using 'a' as the distribution column by default. HINT: Please use 'DISTRIBUTE BY' clause to specify suitable data distribution column. CREATE TABLE gaussdb=# CREATE OR REPLACE function autonomous_32(a int ,b int ,c text) RETURN int AS DECLARE PRAGMA AUTONOMOUS_TRANSACTION; BEGIN insert into t4 values(a, b, c); return 1; END; / gaussdb=# CREATE OR REPLACE function autonomous_33(num1 int) RETURN int AS DECLARE num3 int := 220; tmp int; PRAGMA AUTONOMOUS_TRANSACTION; BEGIN num3 := num3/num1; return num3; EXCEPTION WHEN division_by_zero THEN select autonomous_32(num3, num1, sqlerrm) into tmp; return 0; END; / CREATE FUNCTION gaussdb=# select autonomous_33(0); autonomous_33 --------------- 0 (1 row) gaussdb=# select * from t4; a | b | c -----+---+------------------ 220 | 0 | division by zero (1 row) 父主题: 自治事务
  • ADM_SYS_PRIVS ADM_SYS_PRIVS视图显示授予用户和角色的系统权限信息。默认只有系统管理员权限才可以访问此系统视图,普通用户需要授权才可以访问。该视图同时存在于PG_CATALOG和SYS Schema下。 表1 ADM_SYS_PRIVS字段 名称 类型 描述 grantee character varying(128) 被授予权限的用户或角色的名称。 privilege character varying(40) 系统权限。 系统权限包括rolsuper、rolinherit、rolcreaterole、rolcreatedb、rolcatupdate、rolcanlogin、rolreplication、rolauditadmin、rolsystemadmin、roluseft、rolmonitoradmin、roloperatoradmin、rolpolicyadmin。 admin_option character varying(3) 表示该授权是否包含ADMIN选项。 YES:表示包含ADMIN选项。 NO:表示不包含ADMIN选项。 common character varying(3) 暂不支持,值为NULL。 inherited character varying(3) 暂不支持,值为NULL。 父主题: 系统视图
  • 参数说明 tablespace_name 要修改的表空间。 取值范围:已存在的表空间名。 new_tablespace_name 表空间的新名称。 新名称不能以"PG_"开头。 取值范围:字符串,符合标识符命名规范。 new_owner 表空间的新所有者。 取值范围:已存在的用户名。 tablespace_option 设置或者重置表空间的参数。 取值范围: seq_page_cost:设置优化器计算一次顺序获取磁盘页面的开销。缺省为1.0。 random_page_cost:设置优化器计算一次非顺序获取磁盘页面的开销。缺省为4.0。 random_page_cost是相对于seq_page_cost的取值,等于或者小于seq_page_cost时毫无意义。 默认值为4.0的前提条件是,优化器采用索引来扫描表数据,并且表数据在cache中命中率可以90%左右。 如果表数据空间要比物理内存小,那么减小该值到一个适当水平;相反地,如果表数据在cache中命中率要低于90%,那么适当增大该值。 如果采用了类似于SSD的随机访问代价较小的存储器,可以适当减小该值,以反映真正的随机扫描代价。 value的取值范围:正的浮点类型。 RESIZE MAXSIZE 重新设置表空间限额的数值。 取值范围: UNLIMITED,该表空间不设置限额。 由space_size来确定,其格式参考CREATE TABLESPACE。 若调整后的限额值比当前表空间实际使用的值要小,调整操作可以执行成功,后续用户需要将该表空间的使用值降低到新限额值之下,才能继续往该表空间中写入数据。 修改参数MAXSIZE时也可使用: ALTER TABLESPACE tablespace_name RESIZE MAXSIZE { 'UNLIMITED' | 'space_size'};
  • 注意事项 只有表空间的所有者或者被授予了表空间ALTER权限的用户有权限执行ALTER TABLESPACE命令,系统管理员默认拥有此权限。但要修改表空间的所有者,当前用户必须是该表空间的所有者或系统管理员,且该用户是新所有者角色的成员。 要修改表空间的所有者A为B,则A必须是B的直接或者间接成员。 如果new_owner与old_owner一致,此处不再校验当前执行操作的用户是否具有修改权限,而直接显示ALTER成功。
  • 语法格式 重命名表空间的语法。 ALTER TABLESPACE tablespace_name RENAME TO new_tablespace_name; 设置表空间所有者的语法。 ALTER TABLESPACE tablespace_name OWNER TO new_owner; 设置表空间属性的语法。 ALTER TABLESPACE tablespace_name SET ( { tablespace_option = value } [, ... ] ); 重置表空间属性的语法。 ALTER TABLESPACE tablespace_name RESET ( { tablespace_option } [, ... ] ); 设置表空间限额的语法 ALTER TABLESPACE tablespace_name RESIZE MAXSIZE { UNLIMITED | 'space_size'};
  • 接口介绍 高级功能包DBE_OUTPUT支持的所有接口请参见表 DBE_OUTPUT。 表1 DBE_OUTPUT 接口名称 描述 DBE_OUTPUT.PRINT_LINE 输出指定的文本,并添加换行符。 DBE_OUTPUT.PRINT 输出指定的文本,不添加换行符。 DBE_OUTPUT.SET_BUFFER_SIZE 设置输出缓冲区的大小,如果不指定则缓冲区最大能容忍20000字节,如果指定小于等于2000字节,则缓冲区允许容纳2000字节。 DBE_OUTPUT.DISABLE 禁用put、put_line、new_line、get_line、get_lines调用,并清空输出缓冲区。 DBE_OUTPUT.ENABLE 开启缓冲区,允许对PUT、PUT_LINE、NEW_LINE、GET_LINE和GET_LINES的调用,设置缓冲区大小。 DBE_OUTPUT.GET_LINE 从缓冲区中以换行符作为分界获取一行数据,获取的数据将不会输出到客户端。 DBE_OUTPUT.GET_LINES 以VARCHAR数组的形式获取缓冲区的指定行数的字符串,被取出的内容将会在缓冲区中清除,不会输出到客户端。 DBE_OUTPUT.NEW_LINE 放置一行在缓冲区末尾,放置行尾标记,空出新的一行。 DBE_OUTPUT.PUT 将输入字符串放入到缓冲区,末尾不加换行符,在存储过程结束时会将以换行符结尾的行输出显示。 DBE_OUTPUT.PUT_LINE 将输入字符串放入到缓冲区,并末尾添加换行符,在存储过程结束时会将以换行符结尾的行输出显示。 DBE_OUTPUT.PRINT_LINE 存储过程PRINT_LINE向消息缓冲区写入一行带有行结束符的文本。DBE_OUTPUT.PRINT_LINE函数原型为: 1 2 DBE_OUTPUT.PRINT_LINE ( format IN VARCHAR2); 表2 DBE_OUTPUT.PRINT_LINE接口参数说明 参数 描述 format 写入消息缓冲区的文本。 DBE_OUTPUT.PRINT 存储过程PRINT将指定的文本输出到指定文本的前面,不添加换行符。DBE_OUTPUT.PRINT函数原型为: 1 2 DBE_OUTPUT.PRINT ( format IN VARCHAR2); 表3 DBE_OUTPUT.PRINT接口参数说明 参数 描述 format 写入指定文本前的文本。 DBE_OUTPUT.SET_BUFFER_SIZE 存储过程SET_BUFFER_SIZE设置输出缓冲区的大小,如果不指定的话缓冲区最大只能容纳20000字节。DBE_OUTPUT.SET_BUFFER_SIZE函数原型为: 1 2 DBE_OUTPUT.SET_BUFFER_SIZE ( size IN INTEGER default 20000); 表4 DBE_OUTPUT.SET_BUFFER_SIZE接口参数说明 参数 描述 size 设置输出缓冲区的大小。 DBE_OUTPUT.DISABLE 存储过程DISABLE禁用put、put_line、new_line、get_line、get_lines调用,并清空输出缓冲区。DBE_OUTPUT.DISABLE函数原型为: 1 DBE_OUTPUT.DISABLE;
  • 示例 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 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 BEGIN DBE_OUTPUT.SET_BUFFER_SIZE(50); DBE_OUTPUT.PRINT('hello, '); DBE_OUTPUT.PRINT_LINE('database!');--输出hello, database! END; / -- 测试disable禁用put、put_line、new_line、get_line、get_lines调用,测试put_line不输出 BEGIN dbe_output.disable(); dbe_output.put_line('1'); END; / -- 测试enable启用put、put_line、new_line、get_line、get_lines调用,测试put_line输出1 BEGIN dbe_output.enable(); dbe_output.put_line('1'); END; / -- 测试put,输入字符串a放入到缓冲区,末尾不加换行符,a不输出 BEGIN dbe_output.enable(); dbe_output.put('a'); END; / -- 测试new_line,添加换行,输出a BEGIN dbe_output.enable(); dbe_output.put('a'); dbe_output.new_line; END; / -- 测试get_line获取缓冲区数据保存到变量,使用put_line输出 DECLARE line VARCHAR(32672); status INTEGER := 0; BEGIN dbe_output.put_line('hello'); dbe_output.get_line(line, status); dbe_output.put_line('-----------'); dbe_output.put_line(line); dbe_output.put_line(status); END; / -- 预期结果为: ----------- hello 0 -- 测试get_line获取缓冲区多行内容,使用put_line输出 DECLARE lines dbms_output.chararr; numlines integer; BEGIN dbe_output.put_line('output line 1'); dbe_output.put_line('output line 2'); dbe_output.put_line('output line 3'); numlines := 100; dbe_output.get_lines(lines, numlines); dbe_output.put_line('num: ' || numlines); dbe_output.put_line('get line 1: ' || lines(1)); dbe_output.put_line('get line 2: ' || lines(2)); dbe_output.put_line('get line 3: ' || lines(3)); END; / -- 预期结果为: num: 3 get line 1: output line 1 get line 2: output line 2 get line 3: output line 3
  • MY_CONS_COLUMNS MY_CONS_COLUMNS视图显示当前用户下表中主键约束列的信息。该视图同时存在于PG_CATALOG和SYS Schema下。 表1 MY_CONS_COLUMNS字段 名称 类型 描述 owner character varying(64) 约束创建者。 table_name character varying(64) 约束相关的表名。 column_name character varying(64) 约束相关的列名。 constraint_name character varying(64) 约束名。 position smallint 表中列的位置。 父主题: 系统视图
  • GLOBAL_SESSION_MEMORY 统计各节点的Session级别的内存使用情况,包含执行作业在数据节点上GaussDB线程和Stream线程分配的所有内存,单位为MB。 表1 GLOBAL_SESSION_MEMORY字段 名称 类型 描述 node_name name 节点名称。 sessid text 线程启动时间+线程标识。 init_mem integer 当前正在执行作业进入执行器前已分配的内存。 used_mem integer 当前正在执行作业已分配的内存。 peak_mem integer 当前正在执行作业已分配的内存峰值。 父主题: Session/Thread
  • PG_DEFAULT_ACL PG_DEFAULT_ACL系统表存储为新建对象设置的初始权限。 表1 PG_DEFAULT_ACL字段 名称 类型 描述 oid oid 行标识符(隐含属性,必须明确选择)。 defaclrole oid 与此权限相关的角色ID。 defaclnamespace oid 与此权限相关的名称空间,如果没有,则为0。 defaclobjtype "char" 此权限的对象类型。 r表示表或视图。 S表示序列。 f表示函数。 T表示类型。 K表示客户端主密钥。 k表示列加密密钥。 defaclacl aclitem[] 创建该类型时所拥有的访问权限。 父主题: 系统表
  • STATIO_USER_SEQUEN CES STATIO_USER_SEQUENCE视图显示当前节点的命名空间中所有用户关系表类型为序列的I/O状态信息。 表1 STATIO_USER_SEQUENCE字段 名称 类型 描述 relid oid 序列OID。 schemaname name 序列中模式名。 relname name 序列名。 blks_read bigint 从序列中读取的磁盘块数。 blks_hit bigint 序列中缓存命中数。 父主题: Cache/IO
  • ADM_COLL_TYPES ADM_COLL_TYPES视图显示所有集合类型的信息。默认只有系统管理员权限才可以访问此系统视图,普通用户需要授权才可以访问。该视图同时存在于PG_CATALOG和SYS Schema下。 表1 ADM_COLL_TYPES字段 名称 类型 描述 owner character varying(128) 集合的所有者。 type_name character varying(128) 集合的名称。 coll_type character varying(128) 集合的描述。 upper_bound numeric 暂不支持,值为NULL。 elem_type_mod character varying(7) 暂不支持,值为NULL。 elem_type_name character varying(128) 集合所依据的数据类型或用户定义类型的名称 length numeric 暂不支持,值为NULL。 precision numeric 暂不支持,值为NULL。 scale numeric 暂不支持,值为NULL。 character_set_name character varying(44) 暂不支持,值为NULL。 elem_storage character varying(7) 暂不支持,值为NULL。 nulls_stored character varying(3) 暂不支持,值为NULL。 char_used character varying(1) 暂不支持,值为NULL。 父主题: 系统视图
  • 统计信息调优介绍 GaussDB是基于代价估算生成的最优执行计划。优化器需要根据analyze收集的统计信息进行行数估算和代价估算,因此统计信息对优化器行数估算和代价估算起着至关重要的作用。通过analyze收集全局统计信息,主要包括:pg_class表中的relpages和reltuples;pg_statistic表中的stadistinct、stanullfrac、stanumbersN、stavaluesN、histogram_bounds等。
  • PG_USER_MAPPING PG_USER_MAPPING系统表存储从本地用户到远程的映射。 需要有系统管理员权限才可以访问此系统表。普通用户可以使用视图PG_USER_MAPPINGS进行查询。 表1 PG_USER_MAPPING字段 名称 类型 引用 描述 oid oid - 行标识符(隐含字段,必须明确选择)。 umuser oid PG_AUTHID.oid 被映射的本地用户的OID,如果用户映射是公共的则为0。 umserver oid PG_FOREIGN_SERVER.oid 包含这个映射的外部服务器的OID。 umoptions text[] - 用户映射指定选项,使用“keyword=value”格式的字符串。 父主题: 系统表
  • 示例 --创建表。 gaussdb=# CREATE TABLE char_type_t1 ( CT_COL1 CHARACTER(4) ); --插入数据。 gaussdb=# INSERT INTO char_type_t1 VALUES ('ok'); --查询表中的数据。 gaussdb=# SELECT ct_col1, char_length(ct_col1) FROM char_type_t1; ct_col1 | char_length ---------+------------- ok | 4 (1 row) --删除表。 gaussdb=# DROP TABLE char_type_t1; --创建表。 gaussdb=# CREATE TABLE char_type_t2 ( CT_COL1 VARCHAR(5) ); --插入数据。 gaussdb=# INSERT INTO char_type_t2 VALUES ('ok'); gaussdb=# INSERT INTO char_type_t2 VALUES ('good'); --插入的数据长度超过类型规定的长度报错。 gaussdb=# INSERT INTO char_type_t2 VALUES ('too long'); ERROR: value too long for type character varying(5) CONTEXT: referenced column: ct_col1 --明确类型的长度,超过数据类型长度后会自动截断。 gaussdb=# INSERT INTO char_type_t2 VALUES ('too long'::varchar(5)); --查询数据。 gaussdb=# SELECT ct_col1, char_length(ct_col1) FROM char_type_t2; ct_col1 | char_length ---------+------------- ok | 2 good | 4 too l | 5 (3 rows) --删除数据。 gaussdb=# DROP TABLE char_type_t2;
  • 语法格式 1 CREATE USER user_name [ [ WITH ] option [ ... ] ] [ ENCRYPTED | UNENCRYPTED ] { PASSWORD | IDENTIFIED BY } { 'password' [EXPIRED] | DISABLE }; 其中option子句用于设置权限及属性等信息。 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 {SYSADMIN | NOSYSADMIN} | {MONADMIN | NOMONADMIN} | {OPRADMIN | NOOPRADMIN} | {POLADMIN | NOPOLADMIN} | {AUDITADMIN | NOAUDITADMIN} | {CREATEDB | NOCREATEDB} | {USEFT | NOUSEFT} | {CREATEROLE | NOCREATEROLE} | {INHERIT | NOINHERIT} | {LOGIN | NOLOGIN} | {REPLICATION | NOREPLICATION} | {VCADMIN | NOVCADMIN} | {PERSISTENCE | NOPERSISTENCE} | CONNECTION LIMIT connlimit | VALID BEGIN 'timestamp' | VALID UNTIL 'timestamp' | USER GROUP 'groupuser' | PERM SPACE 'spacelimit' | TEMP SPACE 'tmpspacelimit' | SPILL SPACE 'spillspacelimit' | NODE GROUP logic_cluster_name | IN ROLE role_name [, ...] | IN GROUP role_name [, ...] | ROLE role_name [, ...] | ADMIN role_name [, ...] | USER role_name [, ...] | SYSID uid | DEFAULT TABLESPACE tablespace_name | PROFILE DEFAULT | PROFILE profile_name | PGUSER
  • 示例 --创建用户jim,登录密码为*******。 gaussdb=# CREATE USER jim PASSWORD '********'; --下面语句与上面的等价。 gaussdb=# CREATE USER kim IDENTIFIED BY '********'; --如果创建有“创建数据库”权限的用户,则需要加CREATEDB关键字。 gaussdb=# CREATE USER dim CREATEDB PASSWORD '********'; --将用户jim的登录密码由********修改为**********。 gaussdb=# ALTER USER jim IDENTIFIED BY '**********' REPLACE '********'; --为用户jim追加CREATEROLE权限。 gaussdb=# ALTER USER jim CREATEROLE; --锁定jim账户。 gaussdb=# ALTER USER jim ACCOUNT LOCK; --删除用户。 gaussdb=# DROP USER kim CASCADE; gaussdb=# DROP USER jim CASCADE; gaussdb=# DROP USER dim CASCADE;
  • 事务管理 在ecpg缺省模式下,语句只有在EXEC SQL COMMIT发出的时候才被提交,嵌入的SQL接口也支持事务的自动提交(通过EXEC SQL SET AUTOCOMMIT TO ON语句设置自动提交)。在自动提交模式下,每条命令都是自动提交的,除非它们包围在一个明确的事务块里。自动提交模式可以用EXEC SQL SET AUTOCOMMIT TO OFF语句关闭。 常见事务管理命令如下: EXEC SQL COMMIT:提交正在进行的事务。 EXEC SQL ROLLBACK:回滚正在进行的事务。 EXEC SQL SET AUTOCOMMIT TO ON:启动自动提交模式。 EXEC SQL SET AUTOCOMMIT TO OFF:关闭自动提交模式,缺省模式。 父主题: 执行SQL命令
  • 参数说明 CHECK 仅在节点列表为TO ALL时可以指定。如果指定该参数,会在清理连接之前检查数据库是否被其他会话连接访问。此参数主要用于DROP DATABASE之前的连接访问检查,如果发现有其他会话连接,则将报错并停止删除数据库。 FORCE 仅在节点列表为TO ALL时可以指定,如果指定该参数,所有和指定dbname和username相关的线程都会收到SIGTERM信号,然后被强制关闭。 COORDINATOR ( nodename [, ... ] ) | NODE ( nodename [, ... ] ) | ALL 仅支持TO ALL,必须指定该参数,节点上的指定连接会被全部删除。 dbname 删除指定数据库上的连接。如果不指定,则删除所有数据库的连接。 取值范围:已存在数据库名。 username 删除指定用户上的连接。如果不指定,则删除所有用户的连接。 取值范围:已存在的用户。
  • 示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 --创建jack用户。 CREATE USER jack PASSWORD '********'; --删除用户jack在数据库template1上的所有连接。 CLEAN CONNECTION TO ALL FOR DATABASE template1 TO USER jack; --删除用户jack的所有连接。 CLEAN CONNECTION TO ALL TO USER jack; --删除在数据库gaussdb上的所有连接。 CLEAN CONNECTION TO ALL FORCE FOR DATABASE gaussdb; --删除用户jack。 DROP USER jack;
  • DB_DEPENDENCIES DB_DEPENDENCIES视图显示当前用户可访问的类型、表、视图、存储过程、函数、触发器之间的依赖关系。所有用户都可以访问。该视图同时存在于PG_CATALOG和SYS Schema下。 表1 DB_DEPENDENCIES字段 名称 类型 描述 owner name 对象的所有者。 name name 对象的名称。 type character varying(18) 对象的类型。 referenced_owner name 被引用对象的所有者。 referenced_name name 被引用对象的名称。 referenced_type character varying(18) 被引用对象的类型。 referenced_link_name character varying(128) 暂不支持,值为NULL。 dependency_type character varying(4) 暂不支持,值为NULL。 父主题: 系统视图
共100000条