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

  1. ALTER SCHEMA

功能描述

修改一个模式的参数。

语法格式

ALTER SCHEMA name RENAME TO new_name

ALTER SCHEMA name OWNER TO { new_owner | CURRENT_USER | SESSION_USER }

参数说明

  1. name:现有模式的名称;
  2. new_name:该模式的新名称,新名称不能以pg_开始;
  3. new_owner:该模式的新所有者。

注意事项

使用ALTER SCHEMA必须是该模式的所有者。

范例

ALTER SCHEMA gbaseschema RENAME TO gbaseschema2;

ALTER SCHEMA

语法兼容

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

相关语法

CREATE SCHEMADROP SCHEMA

  1. ALTER SEQUENCE

功能描述

修改一个现有的序列的参数。

语法格式

ALTER SEQUENCE [ IF EXISTS ] name

    [ AS data_type ]

    [ INCREMENT [ BY ] increment ]

    [ MINVALUE minvalue | NO MINVALUE ] [ MAXVALUE maxvalue | NO MAXVALUE ]

    [ START [ WITH ] start ]

    [ RESTART [ [ WITH ] restart ] ]

    [ CACHE cache ] [ [ NO ] CYCLE ]

    [ OWNED BY { table_name.column_name | NONE } ]

ALTER SEQUENCE [ IF EXISTS ] name OWNER TO { new_owner | CURRENT_USER | SESSION_USER }

ALTER SEQUENCE [ IF EXISTS ] name RENAME TO new_name

ALTER SEQUENCE [ IF EXISTS ] name SET SCHEMA new_schema

参数说明

  1. name:将要修改的序列的名称,可以被模式修饰;
  2. IF EXISTS:如果序列不存在时不报错,仅提示;
  3. data_type:指定序列的数据类型,取值范围:smallint、integer和bigint,缺省为bigint;
  4. increment:指定序列的步长。一个正数将生成一个递增的序列,一个负数将生成一个递减的序列,缺省为1;
  5. minvalue | NO MINVALUE:执行序列的最小值。如果没有声明minvalue或者声明了NO MINVALUE,则递增序列的缺省值为1,递减序列的缺省值为数据类型的最小值,NOMINVALUE等价于NO;
  6. maxvalue | NO MAXVALUE:执行序列的最大值。如果没有声明maxvalue或者声明了NO MAXVALUE,则递增序列的缺省值为数据类型的最大值,递减序列的缺省值为-1,NOMAXVALUE等价于NO;
  7. start:指定序列的起始值。缺省值:对于递增序列为minvalue,递减序列为maxvalue;
  8. restart:RESTART [ WITH restart ]更改该序列的当前值,可选;
  9. cache:为了快速访问,而在内存中预先存储序列号的个数,缺省值为1,表示一次只能生成一个值,也就是没有缓存;
  10. CYCLE | NO CYCLE:用于使序列达到maxvalue或者minvalue后可循环并继续下去,如果声明了NO CYCLE,则在序列达到其最大值后任何对nextval的调用都会报错,缺省情况下将保留旧的循环;
  11. OWNED BY table_name.column_name | OWNED BY NONE:将序列和一个表的指定字段进行关联。这样,在删除那个字段或其所在表的时候会自动删除已关联的序列。关联的表和序列的所有者必须是同一个用户,并且在同一个模式中,缺省值为OWNED BY NONE,表示不存在这样的关联;
  12. new_owner:该序列的新所有者的名称;
  13. new_name:该序列的新名称;
  14. new_schema:该序列的新模式。

注意事项

使用ALTER SEQUENCE的用户必须是该序列的所有者。

范例

ALTER SEQUENCE serial RENAME TO g_serial;

ALTER SEQUENCE

语法兼容

ALTER SEQUENCE符合SQL 标准,不过AS、START WITH、 OWNED BY、OWNER TO、RENAME TO 以及SET SCHEMA子句是 PostgreSQL扩展。

相关语法

CREATE SEQUENCEDROP SEQUENCE

  1. ALTER STATISTICS

功能描述

修改扩展统计的参数。

语法格式

ALTER STATISTICS name OWNER TO { new_owner | CURRENT_USER | SESSION_USER }

ALTER STATISTICS name RENAME TO new_name

ALTER STATISTICS name SET SCHEMA new_schema

参数说明

  1. name:要修改的统计对象的名称,可以被模式修饰;
  2. new_owner:统计对象的新所有者的名称;
  3. new_name:统计对象的新名称;
  4. new_schema:统计对象的新模式。

注意事项

要使用ALTER STATISTICS必须是统计对象的拥有者。

语法兼容

SQL标准中没有ALTER STATISTICS命令。

相关语法

CREATE STATISTICSDROP STATISTICS

  1. ALTER SYSTEM

功能描述

修改一个服务器配置参数。

语法格式

ALTER SYSTEM SET configuration_parameter { TO | = } { value | 'value' | DEFAULT }

ALTER SYSTEM RESET configuration_parameter

ALTER SYSTEM RESET ALL

参数说明

  1. configuration_parameter:配置参数的名称;
  2. value:该参数的新值,取值范围:字符串常量、标识符、数字或由他们构成的列表。

范例

设置wal_level:

ALTER SYSTEM SET wal_level = replica;

ALTER SYSTEM

撤销以上的设置,恢复默认设置:

ALTER SYSTEM RESET wal_level;

ALTER SYSTEM

语法兼容

ALTER SYSTEM语句是一种 PostgreSQL扩展。

相关语法

SETSHOW

  1. ALTER TABLE

功能描述

修改一个表的参数。

语法格式

ALTER TABLE [ IF EXISTS ] [ ONLY ] name [ * ]

    action [, ... ]

ALTER TABLE [ IF EXISTS ] [ ONLY ] name [ * ]

    RENAME [ COLUMN ] column_name TO new_column_name

ALTER TABLE [ IF EXISTS ] [ ONLY ] name [ * ]

    RENAME CONSTRAINT constraint_name TO new_constraint_name

ALTER TABLE [ IF EXISTS ] name

    RENAME TO new_name

ALTER TABLE [ IF EXISTS ] name

    SET SCHEMA new_schema

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

    SET TABLESPACE new_tablespace [ NOWAIT ]

ALTER TABLE [ IF EXISTS ] name

    ATTACH PARTITION partition_name FOR VALUES partition_bound_spec

ALTER TABLE [ IF EXISTS ] name

    DETACH PARTITION partition_name

其中action 是以下之一:

    ADD [ COLUMN ] [ IF NOT EXISTS ] column_name data_type [ COLLATE collation ] [ column_constraint [ ... ] ]

    DROP [ COLUMN ] [ IF EXISTS ] column_name [ RESTRICT | CASCADE ]

    ALTER [ COLUMN ] column_name [ SET DATA ] TYPE data_type [ COLLATE collation ] [ USING expression ]

    ALTER [ COLUMN ] column_name SET DEFAULT expression

    ALTER [ COLUMN ] column_name DROP DEFAULT

    ALTER [ COLUMN ] column_name { SET | DROP } NOT NULL

    ALTER [ COLUMN ] column_name ADD GENERATED { ALWAYS | BY DEFAULT } AS IDENTITY [ ( sequence_options ) ]

    ALTER [ COLUMN ] column_name { SET GENERATED { ALWAYS | BY DEFAULT } | SET sequence_option | RESTART [ [ WITH ] restart ] } [...]

    ALTER [ COLUMN ] column_name DROP IDENTITY [ IF EXISTS ]

    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 }

    ADD table_constraint [ NOT VALID ]

    ADD table_constraint_using_index

    ALTER CONSTRAINT constraint_name [ DEFERRABLE | NOT DEFERRABLE ] [ INITIALLY DEFERRED | INITIALLY IMMEDIATE ]

    VALIDATE CONSTRAINT constraint_name

    DROP CONSTRAINT [ IF EXISTS ]  constraint_name [ RESTRICT | CASCADE ]

    DISABLE TRIGGER [ trigger_name | ALL | USER ]

    ENABLE TRIGGER [ trigger_name | ALL | USER ]

    ENABLE REPLICA TRIGGER trigger_name

    ENABLE ALWAYS TRIGGER trigger_name

    DISABLE RULE rewrite_rule_name

    ENABLE RULE rewrite_rule_name

    ENABLE REPLICA RULE rewrite_rule_name

    ENABLE ALWAYS RULE rewrite_rule_name

    DISABLE ROW LEVEL SECURITY

    ENABLE ROW LEVEL SECURITY

    FORCE ROW LEVEL SECURITY

    NO FORCE ROW LEVEL SECURITY

    CLUSTER ON index_name

    SET WITHOUT CLUSTER

    SET WITH OIDS

    SET WITHOUT OIDS

    SET TABLESPACE new_tablespace

    SET { LOGGED | UNLOGGED }

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

    RESET ( storage_parameter [, ... ] )

    INHERIT parent_table

    NO INHERIT parent_table

    OF type_name

    NOT OF

    OWNER TO { new_owner | CURRENT_USER | SESSION_USER }

    REPLICA IDENTITY { DEFAULT | USING INDEX index_name | FULL | NOTHING}

并且 table_constraint_using_index 是:

    [ CONSTRAINT constraint_name ]

    { UNIQUE | PRIMARY KEY } USING INDEX index_name

    [ DEFERRABLE | NOT DEFERRABLE ] [ INITIALLY DEFERRED | INITIALLY IMMEDIATE ]

参数说明

  1. IF EXISTS:如果表不存在不报错,仅提示;
  2. name:要修改的现有表的名称,可以被模式修饰;如果在表名前指定了ONLY,则仅修改该表,如果没有指定ONLY,则表及其所有后代表都会被修改;在表后面标注*可以显式地指定包括后代表;
  3. column_name:新列或者现有列的名称;
  4. new_column_name:现有列的新名称;
  5. new_name:该表的新名称;
  6. data_type:新列的数据类型或现有列的新数据类型;
  7. table_constraint:该表的新的表约束;
  8. constraint_name:新约束或者现有约束的名称;
  9. CASCADE:删除或更新时同时操作被引用列的值;
  10. RESTRICT:删除或更新将会违背外键约束时报错,不可延迟检查;
  11. trigger_name:将禁用或启用的触发器名称;
    1. ALL:禁用或者启用属于该表的所有触发器;
    2. USER:禁用或者启用属于该表的所有触发器,内部产生的约束触发器除外;
  12. index_name:现有索引的名称;
  13. storage_parameter:表存储参数的名称;
  14. value:表存储参数的新值;
  15. parent_table:要与这个表关联或者解除关联的父表;
  16. new_owner:该表的新所有者的名称;
  17. new_tablespace:要把该表移入其中的表空间的名称;
  18. new_schema:要把该表移入其中的模式的名称;
  19. nodename:定义数据库节点;
  20. groupname:定义数据库节点组;
  21. partition_name:要从此表中拆分出分区表的名称;
  22. partition_bound_spec:新分区的分区绑定规范。

其他参数参见CREATE TABLE

注意事项

当使用ADD COLUMN增加一列时,该表中所有现在的行会被该列的默认值初始化。

ALTER TABLE更改表的不同形式,要求的锁级别可能不用,如果没有特殊说明,将会持有一个ACCESS EXCLUSIVE锁。当有多个子命令时,持有的锁将会是子命令里面最严格的。

DISTRIBUTE BY、ADD NODE、DELETE NODE、TO NODE 或 TO GROUP的ALTER TABLE子句用于在数据库集群节点之间重新分配数据,这些子句不能与其他命令一起使用。

范例

ALTER TABLE disttab ADD COLUMN c4 varchar(30);

ALTER TABLE

语法兼容

ADD(不带USING INDEX)、 DROP [COLUMN]、DROP IDENTITY、RESTART、 SET DEFAULT、SET DATA TYPE(不带USING)、 SET GENERATED和SET sequence_option 符合 SQL 标准。其他形式是PostgreSQL对 SQL 标准的 扩展。

相关语法

CREATE TABLEDROP TABLE

  1. ALTER TABLESPACE

功能描述

修改表空间的参数。

语法格式

ALTER TABLESPACE name RENAME TO new_name

ALTER TABLESPACE name OWNER TO { new_owner | CURRENT_USER | SESSION_USER }

ALTER TABLESPACE name SET ( tablespace_option = value [, ... ] )

ALTER TABLESPACE name RESET ( tablespace_option [, ... ] )

参数说明

  1. name:现有表空间的名称;
  2. new_name:该表空间的新名称,不能以pg_开始;
  3. new_owner:该表空间的新所有者;
  4. tablespace_option:要设置或者重置的表空间参数,当前可以使用seq_page_cost、random_page_cost 以及effective_io_concurrency参数;

注意事项

只有表空间的所有者有权限执行ALTER TABLESPACE命令。

范例

ALTER TABLESPACE index_space RENAME TO fast_raid;

语法兼容

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

相关语法

CREATE TABLESPACEDROP TABLESPACE

  1. ALTER TEXT SEARCH CONFIGURATION

功能描述

修改文本搜索配置的参数。用户可以将映射从字串类型调整为字典,或者改变配置的名称或者所有者,或者修改搜索配置的配置参数。

语法格式

ALTER TEXT SEARCH CONFIGURATION name

    ADD MAPPING FOR token_type [, ... ] WITH dictionary_name [, ... ]

ALTER TEXT SEARCH CONFIGURATION name

    ALTER MAPPING FOR token_type [, ... ] WITH dictionary_name [, ... ]

ALTER TEXT SEARCH CONFIGURATION name

    ALTER MAPPING REPLACE old_dictionary WITH new_dictionary

ALTER TEXT SEARCH CONFIGURATION name

    ALTER MAPPING FOR token_type [, ... ] REPLACE old_dictionary WITH new_dictionary

ALTER TEXT SEARCH CONFIGURATION name

    DROP MAPPING [ IF EXISTS ] FOR token_type [, ... ]

ALTER TEXT SEARCH CONFIGURATION name RENAME TO new_name

ALTER TEXT SEARCH CONFIGURATION name OWNER TO { new_owner | CURRENT_USER | SESSION_USER }

ALTER TEXT SEARCH CONFIGURATION name SET SCHEMA new_schema

参数说明

  1. name:现有的文本搜索配置的名称,可以被模式修饰;
  2. token_type:与配置的语法解析器关联的字串类型的名称;
  3. dictionary_name:文本搜索字典名称,如果有多个字典,则它们会按指定的顺序搜索;
  4. old_dictionary:映射中拟被替换的文本搜索字典名称;
  5. new_dictionary:替换old_dictionary的文本搜索字典的名称;
  6. new_name:文本搜索配置的新名称
  7. new_owner:文本搜索配置的新所有者;
  8. new_schema:文本搜索配置的新模式名。

注意事项

当一个搜索配置已经被引用(如被用来创建索引),则不允许用户修改此文本搜索配置。

要使用ALTER TEXT SEARCH CONFIGURATION,用户必须是配置的所有者。

范例

ALTER TEXT SEARCH CONFIGURATION gdt1 RENAME TO gdt2;

ALTER TEXT SEARCH CONFIGURATION

语法兼容

在 SQL 标准中没有 ALTER TEXT SEARCH CONFIGURATION 语句。

相关语法

CREATE TEXT SEARCH CONFIGURATIONDROP TEXT SEARCH CONFIGURATION

  1. ALTER TEXT SEARCH DICTIONARY

功能描述

修改全文检索词典的相关定义,包括参数、名称、所有者、以及模式等。

语法格式

ALTER TEXT SEARCH DICTIONARY name (

    option [ = value ] [, ... ]

)

ALTER TEXT SEARCH DICTIONARY name RENAME TO new_name

ALTER TEXT SEARCH DICTIONARY name OWNER TO { new_owner | CURRENT_USER | SESSION_USER }

ALTER TEXT SEARCH DICTIONARY name SET SCHEMA new_schema

参数说明

  1. name:现有的词典的名称,可以被模式修饰;
  2. option:模板相关参数名;
  3. value:模板相关参数值;
  4. new_name:词典的新名称;
  5. new_owner:词典新的所有者;
  6. new_schema:词典的新模式。

范例

ALTER TEXT SEARCH DICTIONARY my_dict ( StopWords = newrussian );

语法兼容

在 SQL 标准中没有 ALTER TEXT SEARCH DICTIONARY语句。

相关语法

CREATE TEXT SEARCH DICTIONARYDROP TEXT SEARCH DICTIONARY

  1. ALTER TEXT SEARCH PARSER

功能描述

修改文本搜索解析器的参数。

语法格式

ALTER TEXT SEARCH PARSER name RENAME TO new_name

ALTER TEXT SEARCH PARSER name SET SCHEMA new_schema

参数说明

  1. name:现有的文本搜索解析器的名称,可以被模式修饰;
  2. new_name:该文本搜索解析器的新名称;
  3. new_schema:该文本搜索解析器的新模式。

注意事项

ALTER TEXT SEARCH PARSER当前仅支持更改解析器名称。

只有系统管理员可以使用ALTER TEXT SEARCH PARSER。

语法兼容

在 SQL 标准中没有 ALTER TEXT SEARCH PARSER语句。

相关语法

CREATE TEXT SEARCH PARSERDROP TEXT SEARCH PARSER

  1. ALTER TEXT SEARCH TEMPLATE

功能描述

修改本搜索模板的参数。

语法格式

ALTER TEXT SEARCH TEMPLATE name RENAME TO new_name

ALTER TEXT SEARCH TEMPLATE name SET SCHEMA new_schema

参数说明

  1. name:现有的文本搜索模板的名称,可以被模式修饰;
  2. new_name:该文本搜索模板的新名称;
  3. new_schema:该文本搜索模板的新模式。

注意事项

ALTER TEXT SEARCH TEMPLATE当前仅支持更改模板的名称。

只有系统管理员可以使用ALTER TEXT SEARCH TEMPLATE。

语法兼容

在 SQL 标准中没有 ALTER TEXT SEARCH TEMPLATE语句。

相关语法

CREATE TEXT SEARCH TEMPLATEDROP TEXT SEARCH TEMPLATE

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值