GBASE 8C——SQL参考6 sql语法(2)

  1. ALTER INDEX

功能描述

修改一个索引的参数。

语法格式

ALTER INDEX [ IF EXISTS ] name RENAME TO new_name

ALTER INDEX [ IF EXISTS ] name SET TABLESPACE tablespace_name

ALTER INDEX name DEPENDS ON EXTENSION extension_name

ALTER INDEX [ IF EXISTS ] name SET ( storage_parameter = value [, ... ] )

ALTER INDEX [ IF EXISTS ] name RESET ( storage_parameter [, ... ] )

ALTER INDEX ALL IN TABLESPACE name [ OWNED BY role_name [, ... ] ]

    SET TABLESPACE new_tablespace [ NOWAIT ]

参数说明

  1. IF EXISTS:如果索引不存在不报错仅提示;
  2. name:要修改的索引名,可以被模式修饰;
  3. new_name:新的索引名;
  4. tablespace_name:表空间的名字;
  5. extension_name:索引依赖的扩展名;
  6. storage_parameter:指定索引方法的存储参数;
  7. value:索引方法特定的存储参数的新值,根据参数的不同,这可能是一个数字或单词。

注意事项

ALTER INDEX的几种形式:

  1. RENAME

只改变索引的名字。对存储的数据没有影响。

  1. SET TABLESPACE

这个选项会改变索引的表空间为指定表空间,并且把索引相关的数据文件移动到新的表空间里。

  1. DEPENDS ON EXTENSION

将索引标记为依赖于扩展,如果扩展被删除,索引也将自动删除。

  1. SET ( storage_parameter = value [, ... ] )

改变索引的一个或多个索引方法特定的存储参数。 需要注意的是索引内容不会被这个命令立即修改,根据参数的不同,可能需要使用REINDEX重建索引来获得期望的效果。

  1. RESET ( storage_parameter [, ... ] )

重置索引的一个或多个索引方法特定的存储参数为缺省值。与SET一样,可能需要使用REINDEX来完全更新索引。

范例

ALTER INDEX customer_idx RENAME TO gcustomer_idx;

ALTER INDEX

语法兼容

ALTER INDEX是一种 PostgreSQL扩展。

相关语法

CREATE INDEXDROP INDEXREINDEX

  1. ALTER LANGUAGE

功能描述

修改过程语言的参数。

语法格式

ALTER [ PROCEDURAL ] LANGUAGE name RENAME TO new_name

ALTER [ PROCEDURAL ] LANGUAGE name OWNER TO { new_owner | CURRENT_USER | SESSION_USER }

参数说明

  1. name:语言的名称;
  2. new_name:该语言的新名称;
  3. new_owner:该语言的新所有者。

语法兼容

在 SQL 标准中没有ALTER LANGUAGE语句。

相关语法

CREATE LANGUAGEDROP LANGUAGE

  1. ALTER MATERIALIZED VIEW

功能描述

修改物化视图的参数。

语法格式

ALTER MATERIALIZED VIEW [ IF EXISTS ] name

    action [, ... ]

ALTER MATERIALIZED VIEW name

    DEPENDS ON EXTENSION extension_name

ALTER MATERIALIZED VIEW [ IF EXISTS ] name

    RENAME [ COLUMN ] column_name TO new_column_name

ALTER MATERIALIZED VIEW [ IF EXISTS ] name

    RENAME TO new_name

ALTER MATERIALIZED VIEW [ IF EXISTS ] name

    SET SCHEMA new_schema

ALTER MATERIALIZED VIEW ALL IN TABLESPACE name [ OWNED BY role_name [, ... ] ]

    SET TABLESPACE new_tablespace [ NOWAIT ]

其中 action是下列之一:

    ALTER [ COLUMN ] column_name SET STATISTICS integer

    ALTER [ COLUMN ] column_name SET ( attribute_option = value [, ... ] )

    ALTER [ COLUMN ] column_name RESET ( attribute_option [, ... ] )

    ALTER [ COLUMN ] column_name SET STORAGE { PLAIN | EXTERNAL | EXTENDED | MAIN }

    CLUSTER ON index_name

    SET WITHOUT CLUSTER

    SET ( storage_parameter = value [, ... ] )

    RESET ( storage_parameter [, ... ] )

    OWNER TO { new_owner | CURRENT_USER | SESSION_USER }

参数说明

  1. name:现有的物化视图的名称,可以被模式修饰;
  2. column_name:新的或现有的列名;
  3. extension_name:该物化视图所依赖的扩展的名称;
  4. new_column_name:现有列的新名称;
  5. new_owner:新所有者的名称;
  6. new_name:该物化视图的新名称;
  7. new_schema:该物化视图的新模式。

注意事项

要使用ALTER MATERIALIZED VIEW,必须是物化视图的所有者。

范例

ALTER MATERIALIZED VIEW mv_customer RENAME TO gmv_customer;

ALTER MATERIALIZED VIEW

语法兼容

ALTER MATERIALIZED VIEW是一种 PostgreSQL扩展。

相关语法

CREATE MATERIALIZED VIEWDROP MATERIALIZED VIEWREFRESH MATERIALIZED VIEW

  1. ALTER NODE

功能描述

修改一个节点的参数。ALTER NODE是集群管理工具封装的内部接口,用来实现集群管理,该接口不建议用户直接使用,以免对集群状态造成影响。

语法格式

ALTER NODE nodename WITH

  (

    [ TYPE = nodetype,]

    [ HOST = hostname,]

    [ PORT = portnum,]

    [ PRIMARY [ = boolean],]

    [ PREFERRED [ = boolean ] ]

  )

参数说明

  1. nodename:节点名称;
  2. TYPE:节点类型,取值范围:Coordinator或Datanode;
  3. PRIMARY:声明该节点是否为主节点;
  4. PREFERRED:声明该节点是否为读操作的首选节点;
  5. nodetype:节点类型,取值范围:Coordinator或Datanode;
  6. hostname:集群节点名称或者IP地址;
  7. portnum:集群节点主机端口号;

注意事项

该接口不建议用户直接使用,以免对集群状态造成影响。

相关语法

CREATE NODE, DROP NODE

  1. ALTER OPERATOR

功能描述

更改一个操作符的参数。

语法格式

ALTER OPERATOR name ( { left_type | NONE } , { right_type | NONE } )

    OWNER TO { new_owner | CURRENT_USER | SESSION_USER }

ALTER OPERATOR name ( { left_type | NONE } , { right_type | NONE } )

    SET SCHEMA new_schema

ALTER OPERATOR name ( { left_type | NONE } , { right_type | NONE } )

    SET ( {  RESTRICT = { res_proc | NONE }

           | JOIN = { join_proc | NONE }

         } [, ... ] )

参数说明

  1. name:现有的操作符的名称,可以被模式修饰;
  2. left_type:这个操作符的左操作数(如果有)的数据类型,缺省情况下可以写成NONE;
  3. right_type:这个操作符的右操作数(如果有)的数据类型,缺省情况下可以写成NONE;
  4. new_owner:该操作符的新所有者;
  5. new_schema:该操作符的新模式;
  6. res_proc:用于这个操作符的限制选择度估计函数;
  7. join_proc:用于这个操作符的连接选择度估算函数;

注意事项

要使用ALTER OPERATOR,必须是操作符的所有者。

范例

ALTER OPERATOR @@ (text, text) OWNER TO gbase;

语法兼容

在 SQL 标准中没有ALTER OPERATOR语句。

相关语法

CREATE OPERATORDROP OPERATOR

  1. ALTER OPERATOR CLASS

功能描述

修改一个操作符类的参数。

语法格式

ALTER OPERATOR CLASS name USING index_method

    RENAME TO new_name

ALTER OPERATOR CLASS name USING index_method

    OWNER TO { new_owner | CURRENT_USER | SESSION_USER }

ALTER OPERATOR CLASS name USING index_method

    SET SCHEMA new_schema

参数说明

  1. name:现有操作符类的名称,可以被模式限定;
  2. index_method:这个操作符类所用于的索引方法的名称;
  3. new_name:该操作符类的新名称;
  4. new_owner:该操作符类的新所有者;
  5. new_schema:该操作符类的新模式。

注意事项

要使用ALTER OPERATOR CLASS,必须是操作符类的所有者。

语法兼容

在 SQL 标准中没有ALTER OPERATOR CLASS语句。

相关语法

CREATE OPERATOR CLASSDROP OPERATOR CLASSALTER OPERATOR FAMILYCREAT OPERATOR FAMILYDROP OPERATOR FAMILY

  1. ALTER OPERATOR FAMILY

功能描述

修改一个操作符族的参数。

语法格式

ALTER OPERATOR FAMILY name USING index_method ADD

  {  OPERATOR strategy_number operator_name ( op_type, op_type )

              [ FOR SEARCH | FOR ORDER BY sort_family_name ]

   | FUNCTION support_number [ ( op_type [ , op_type ] ) ]

              function_name [ ( argument_type [, ...] ) ]

  } [, ... ]

ALTER OPERATOR FAMILY name USING index_method DROP

  {  OPERATOR strategy_number ( op_type [ , op_type ] )

   | FUNCTION support_number ( op_type [ , op_type ] )

  } [, ... ]

ALTER OPERATOR FAMILY name USING index_method

    RENAME TO new_name

ALTER OPERATOR FAMILY name USING index_method

    OWNER TO { new_owner | CURRENT_USER | SESSION_USER }

ALTER OPERATOR FAMILY name USING index_method

    SET SCHEMA new_schema

参数说明

  1. name:现有的操作符族的名称,可以被模式修饰;
  2. index_method:操作符族所属的索引的名称;
  3. strategy_number:与该操作符族相关的操作符的索引方法策略号;
  4. operator_name:与该操作符族相关的操作符的名称,可以被模式修饰;
  5. op_type:在OPERATOR子句中指定该操作符的操作数数据类型;
  6. sort_family_name:B树操作符族的名称,可以被模式修饰,默认值FOR SEARCH;
  7. support_number:与操作符族相关的函数的索引的过程编号;
  8. function_name:该操作符族的索引支持的函数名称,可以被模式修饰;
  9. argument_type:该函数的参数数据类型;
  10. new_name:该操作符族的新名称;
  11. new_owner:该操作符族的新所有者;
  12. new_schema:该操作符族的新模式。

注意事项

OPERATOR和FUNCTION子句可以以任何顺序出现。

语法兼容

在 SQL 标准中没有 ALTER OPERATOR FAMILY语句。

相关语法

CREATE OPERATOR FAMILYDROP OPERATOR FAMILYCREATE OPERATOR CLASSALTER OPERATOR CLASSDROP OPERATOR CLASS

  1. ALTER POLICY

功能描述

修改一条行级安全性策略的参数。

语法格式

ALTER POLICY name ON table_name RENAME TO new_name

ALTER POLICY name ON table_name

    [ TO { role_name | PUBLIC | CURRENT_USER | SESSION_USER } [, ...] ]

    [ USING ( using_expression ) ]

    [ WITH CHECK ( check_expression ) ]

参数说明

name:要更改的现有策略的名称;

table_name:该策略所在的表的名称,可以被模式修饰;

new_name:该策略的新名称;

role_name:该策略适用的角色,可以一次指定多个角色,或使用PUBLIC将策略应用与所有角色;

using_expression:该策略的USING表达式,详见CREATE POLICY

check_expression:该策略的WITH CHECK表达式,详见CREATE POLICY

注意事项

ALTER POLICY只允许修改策略所应用的角色集合以及USING和WITH CHECK表达式。要更改策略的其他属性,例如其应用的命令、允许还是限制等,则必须删除并重新创建策略。

语法兼容

ALTER POLICY是一种PostgreSQL扩展。

相关语法

CREATE POLICYDROP POLICY

  1. ALTER ROLE

功能描述

修改一个数据库角色的参数。

语法格式

ALTER ROLE role_specification [ WITH ] option [ ... ]

其中 option 可以是:

      SUPERUSER | NOSUPERUSER

    | CREATEDB | NOCREATEDB

    | CREATEROLE | NOCREATEROLE

    | INHERIT | NOINHERIT

    | LOGIN | NOLOGIN

    | REPLICATION | NOREPLICATION

    | BYPASSRLS | NOBYPASSRLS

    | CONNECTION LIMIT connlimit

    | [ ENCRYPTED ] PASSWORD 'password'

    | VALID UNTIL 'timestamp'

ALTER ROLE name RENAME TO new_name

ALTER ROLE { role_specification | ALL } [ IN DATABASE database_name ] SET configuration_parameter { TO | = } { value | DEFAULT }

ALTER ROLE { role_specification | ALL } [ IN DATABASE database_name ] SET configuration_parameter FROM CURRENT

ALTER ROLE { role_specification | ALL } [ IN DATABASE database_name ] RESET configuration_parameter

ALTER ROLE { role_specification | ALL } [ IN DATABASE database_name ] RESET ALL

其中 role_specification 可以是:

    role_name

  | CURRENT_USER

  | SESSION_USER

参数说明

  1. name:要对其属性进行修改的角色的名称;
  2. CURRENT_USER:修改当前用户;
  3. SESSION_USER:修改当前会话用户;
  4. new_name:该角色的新名称;
  5. database_name:要设置该配置变量的数据库名称;
  6. configuration_parameter | value:设置角色的参数。ALTER ROLE中修改的会话参数只针对指定的角色,且在下一次该角色启动的会话中有效。取值详见SET

其他参数CREATE ROLE

注意事项

使用 DROP ROLE移除一个角色。

范例

ALTER ROLE gbasedbt WITH LOGIN;

ALTER ROLE

语法兼容

ALTER ROLE语句是一个 PostgreSQL扩展。

相关语法

CREATE ROLEDROP ROLESET ROLEALTER DATABASEALTER GROUPSETALTER USER

  1. ALTER RULE

功能描述

修改一个规则参数。

语法格式

ALTER RULE name ON table_name RENAME TO new_name

参数说明

  1. name:要修改的现有规则的名称;
  2. table_name规则适用的表或者视图的名称,可以被模式修饰;
  3. new_name:该规则的新名称。

注意事项

当前仅支持更改规则名称。

语法兼容

ALTER RULE是一种 PostgreSQL的语言扩展。

相关语法

CREATE RULEDROP RULE

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值