当前位置:网站首页>GBASE 8C——SQL参考6 sql语法(2)
GBASE 8C——SQL参考6 sql语法(2)
2022-07-27 05:12:00 【aisirea】
功能描述
修改一个索引的参数。
语法格式
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 ]
参数说明
- IF EXISTS:如果索引不存在不报错仅提示;
- name:要修改的索引名,可以被模式修饰;
- new_name:新的索引名;
- tablespace_name:表空间的名字;
- extension_name:索引依赖的扩展名;
- storage_parameter:指定索引方法的存储参数;
- value:索引方法特定的存储参数的新值,根据参数的不同,这可能是一个数字或单词。
注意事项
ALTER INDEX的几种形式:
- RENAME
只改变索引的名字。对存储的数据没有影响。
- SET TABLESPACE
这个选项会改变索引的表空间为指定表空间,并且把索引相关的数据文件移动到新的表空间里。
- DEPENDS ON EXTENSION
将索引标记为依赖于扩展,如果扩展被删除,索引也将自动删除。
- SET ( storage_parameter = value [, ... ] )
改变索引的一个或多个索引方法特定的存储参数。 需要注意的是索引内容不会被这个命令立即修改,根据参数的不同,可能需要使用REINDEX重建索引来获得期望的效果。
- RESET ( storage_parameter [, ... ] )
重置索引的一个或多个索引方法特定的存储参数为缺省值。与SET一样,可能需要使用REINDEX来完全更新索引。
范例
ALTER INDEX customer_idx RENAME TO gcustomer_idx;
ALTER INDEX
语法兼容
ALTER INDEX是一种 PostgreSQL扩展。
相关语法
CREATE INDEX, DROP INDEX, REINDEX
功能描述
修改过程语言的参数。
语法格式
ALTER [ PROCEDURAL ] LANGUAGE name RENAME TO new_name
ALTER [ PROCEDURAL ] LANGUAGE name OWNER TO { new_owner | CURRENT_USER | SESSION_USER }
参数说明
- name:语言的名称;
- new_name:该语言的新名称;
- new_owner:该语言的新所有者。
语法兼容
在 SQL 标准中没有ALTER LANGUAGE语句。
相关语法
CREATE LANGUAGE, DROP LANGUAGE
功能描述
修改物化视图的参数。
语法格式
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 }
参数说明
- name:现有的物化视图的名称,可以被模式修饰;
- column_name:新的或现有的列名;
- extension_name:该物化视图所依赖的扩展的名称;
- new_column_name:现有列的新名称;
- new_owner:新所有者的名称;
- new_name:该物化视图的新名称;
- new_schema:该物化视图的新模式。
注意事项
要使用ALTER MATERIALIZED VIEW,必须是物化视图的所有者。
范例
ALTER MATERIALIZED VIEW mv_customer RENAME TO gmv_customer;
ALTER MATERIALIZED VIEW
语法兼容
ALTER MATERIALIZED VIEW是一种 PostgreSQL扩展。
相关语法
CREATE MATERIALIZED VIEW, DROP MATERIALIZED VIEW, REFRESH MATERIALIZED VIEW
功能描述
修改一个节点的参数。ALTER NODE是集群管理工具封装的内部接口,用来实现集群管理,该接口不建议用户直接使用,以免对集群状态造成影响。
语法格式
ALTER NODE nodename WITH
(
[ TYPE = nodetype,]
[ HOST = hostname,]
[ PORT = portnum,]
[ PRIMARY [ = boolean],]
[ PREFERRED [ = boolean ] ]
)
参数说明
- nodename:节点名称;
- TYPE:节点类型,取值范围:Coordinator或Datanode;
- PRIMARY:声明该节点是否为主节点;
- PREFERRED:声明该节点是否为读操作的首选节点;
- nodetype:节点类型,取值范围:Coordinator或Datanode;
- hostname:集群节点名称或者IP地址;
- portnum:集群节点主机端口号;
注意事项
该接口不建议用户直接使用,以免对集群状态造成影响。
相关语法
功能描述
更改一个操作符的参数。
语法格式
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 }
} [, ... ] )
参数说明
- name:现有的操作符的名称,可以被模式修饰;
- left_type:这个操作符的左操作数(如果有)的数据类型,缺省情况下可以写成NONE;
- right_type:这个操作符的右操作数(如果有)的数据类型,缺省情况下可以写成NONE;
- new_owner:该操作符的新所有者;
- new_schema:该操作符的新模式;
- res_proc:用于这个操作符的限制选择度估计函数;
- join_proc:用于这个操作符的连接选择度估算函数;
注意事项
要使用ALTER OPERATOR,必须是操作符的所有者。
范例
ALTER OPERATOR @@ (text, text) OWNER TO gbase;
语法兼容
在 SQL 标准中没有ALTER OPERATOR语句。
相关语法
CREATE OPERATOR, DROP OPERATOR
功能描述
修改一个操作符类的参数。
语法格式
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
参数说明
- name:现有操作符类的名称,可以被模式限定;
- index_method:这个操作符类所用于的索引方法的名称;
- new_name:该操作符类的新名称;
- new_owner:该操作符类的新所有者;
- new_schema:该操作符类的新模式。
注意事项
要使用ALTER OPERATOR CLASS,必须是操作符类的所有者。
语法兼容
在 SQL 标准中没有ALTER OPERATOR CLASS语句。
相关语法
CREATE OPERATOR CLASS, DROP OPERATOR CLASS, ALTER OPERATOR FAMILY, CREAT OPERATOR FAMILY, DROP 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
参数说明
- name:现有的操作符族的名称,可以被模式修饰;
- index_method:操作符族所属的索引的名称;
- strategy_number:与该操作符族相关的操作符的索引方法策略号;
- operator_name:与该操作符族相关的操作符的名称,可以被模式修饰;
- op_type:在OPERATOR子句中指定该操作符的操作数数据类型;
- sort_family_name:B树操作符族的名称,可以被模式修饰,默认值FOR SEARCH;
- support_number:与操作符族相关的函数的索引的过程编号;
- function_name:该操作符族的索引支持的函数名称,可以被模式修饰;
- argument_type:该函数的参数数据类型;
- new_name:该操作符族的新名称;
- new_owner:该操作符族的新所有者;
- new_schema:该操作符族的新模式。
注意事项
OPERATOR和FUNCTION子句可以以任何顺序出现。
语法兼容
在 SQL 标准中没有 ALTER OPERATOR FAMILY语句。
相关语法
CREATE OPERATOR FAMILY, DROP OPERATOR FAMILY, CREATE OPERATOR CLASS, ALTER OPERATOR CLASS, DROP OPERATOR CLASS
功能描述
修改一条行级安全性策略的参数。
语法格式
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扩展。
相关语法
功能描述
修改一个数据库角色的参数。
语法格式
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
参数说明
- name:要对其属性进行修改的角色的名称;
- CURRENT_USER:修改当前用户;
- SESSION_USER:修改当前会话用户;
- new_name:该角色的新名称;
- database_name:要设置该配置变量的数据库名称;
- configuration_parameter | value:设置角色的参数。ALTER ROLE中修改的会话参数只针对指定的角色,且在下一次该角色启动的会话中有效。取值详见SET。
其他参数CREATE ROLE。
注意事项
使用 DROP ROLE移除一个角色。
范例
ALTER ROLE gbasedbt WITH LOGIN;
ALTER ROLE
语法兼容
ALTER ROLE语句是一个 PostgreSQL扩展。
相关语法
CREATE ROLE, DROP ROLE, SET ROLE, ALTER DATABASE, ALTER GROUP, SET, ALTER USER
功能描述
修改一个规则参数。
语法格式
ALTER RULE name ON table_name RENAME TO new_name
参数说明
- name:要修改的现有规则的名称;
- table_name规则适用的表或者视图的名称,可以被模式修饰;
- new_name:该规则的新名称。
注意事项
当前仅支持更改规则名称。
语法兼容
ALTER RULE是一种 PostgreSQL的语言扩展。
相关语法
边栏推荐
- 期货公司开户的具体事项
- Fortex方达发布电子交易生态体系 与客户共享共赢
- You should negotiate the handling fee before opening a futures account
- Read and understand the advantages of the LAAS scheme of elephant swap
- The NFT market pattern has not changed. Can okaleido set off a new round of waves?
- 2022/7/26 考试总结
- How MySQL and redis ensure data consistency
- 什么是Alpha和Beta测试?
- 定点一键查询GUI编程的设计与开发
- 基于PG-Oracle和MySQL的三库通用sql代码开发
猜你喜欢

Getaverse, a distant bridge to Web3

DDD领域驱动设计笔记

Rating and inquiry details of futures companies

Prototype and prototype chain in JS

个人收款码不得用于经营收款

Seektiger will launch STI fusion mining function to obtain Oka pass

Choose futures companies with state-owned enterprise background to open accounts

Jenkins build image automatic deployment

Web2.0 giants have deployed VC, and tiger Dao VC may become a shortcut to Web3

Mysql分组后时并行统计数量
随机推荐
GBASE 8C——SQL参考6 sql语法(9)
jenkins构建镜像自动化部署
什么是Alpha和Beta测试?
In the future, face brushing payment can occupy a lot of market share
Choose futures companies with state-owned enterprise background to open accounts
期货开户要和客户经理详谈政策
You should negotiate the handling fee before opening a futures account
The written test questions of 25 large Internet companies are summarized, and I have encountered packages.
The main advantage of face brushing payment users is their high degree of intelligence
怎样才能拿到期货开户最低的手续费?
万字解析MySQL索引原理——InnoDB索引结构与读取
怎么开立普通商品期货账户
GBASE 8C——SQL参考 5 全文检索
存储过程试炼2--建立Test表测试不同类型的存储过程
Integration and extension of robot programming and interdisciplinary
Several ways of element positioning in page layout
亚马逊测评自养号,如何进行系统性的学习?
解决MySQL JDBC数据批量插入慢的问题
vscode打造golang开发环境以及golang的debug单元测试
PHP的CI框架学习