云数据库 GAUSSDB-ALTER TABLE:参数说明

时间:2023-11-15 14:50:15

参数说明

  • IF EXISTS

    如果不存在相同名称的表,不会抛出一个错误,而会发出一个通知,告知表不存在。

  • table_name [*] | ONLY table_name | ONLY ( table_name )

    table_name是需要修改的表名。

    若声明了ONLY选项,则只有那个表被更改。若未声明ONLY,该表及其所有子表都将会被更改。另外,可以在表名称后面显示地增加*选项来指定包括子表,即表示所有后代表都被扫描,这是默认行为。

  • constraint_name

    要删除的现有约束的名称。

  • index_name

    索引名称。

  • storage_parameter

    表的存储参数的名称。

    在线扩容新增的三个选项:

    • append_mode(枚举类型)

      设置表上扩容方式为在线扩容,离线扩容,非扩容方式。在线扩容时允许对表进行部分的修改操作;离线扩容时,在扩容时不允许对表进行操作。

      正在扩容表上需要新增数据要追加方式写入,便于记录增量数据。

      • on:标记表为在线扩容模式,在线扩容时,设置后后续数据以追加方式写入。
      • off:关闭扩容模式,设置后表上数据按正常方式写入,并且在pg_class.reloptions中不显示在线扩容相关的选项。
      • read_only:标记表为离线扩容。离线扩容时,不允许对表进行操作。
      • end_catchup:最后一轮追增的写报错模式,写业务报错,读业务正常执行。
    • rel_cn_oid(OID类型)

      记录当前CN节点中表的OID,用于在DN节点上生成delete_delta表

      当append_mode=on时,必须同时指定rel_cn_oid.

      这append_mode ,rel_cn_oid两个选项只在在线扩容工具中使用,不建议用户使用。

    • exec_step(整形)

      记录断点续传的步骤,记录在临时表的relOptions中。

      取值范围:[1,4]

      只支持数据重分布工具使用。

    • create_time(长整形)

      记录断点续传时临时表创建时间,记录在临时表的relOptions中。

      只支持数据重分布工具使用。

    • wait_clean_cbi (字符串类型)

      标记当前全局索引中含有扩容bucket搬迁产生的残留tuple,扩容后会设置 (wait_clean_cbi=y), 在vacuum流程清理残留tuple后设置(wait_clean_cbi=n)。

      此选项只在扩容工具中使用,不建议用户使用。

    创建索引新增一个选项:

    • parallel_workers(int类型)

      表示创建索引时起的bgworker线程数量,例如2就表示将会起2个bgworker线程并发创建索引。

      取值范围:[0,32],0表示关闭该功能。

      默认值:不设置该参数,表示未开启并行建索引功能。

    复制表新增一个选项:
    • primarynode(bool类型)

      默认值:off

      当primarynode=on时,将为复制表选择primary node,通常是pgxc_class表nodeoids字段记录的第一个节点。当复制表执行IUD操作时,将先下发到primarynode节点执行,收到结果后再下发到其它DN。

    透明数据加密选项:

    • enable_tde(bool类型)

      是否开启表的透明数据加密。开启的前提是打开透明数据加密开关GUC参数enable_tde,同时启用了KMS密钥管理服务,并正确配置了集群主密钥ID GUC参数tde_cmk_id

      本参数仅支持行存表。不支持列存表、临时表。不支持ustore存储引擎。只有创建表时指定了enable_tde选项才支持修改此参数配置,切换加密开关状态不会改变加密算法和密钥信息。

      取值范围:on/off。on表示开启透明数据加密,从off切换为on后,新数据写入数据页面时会自动加密,旧数据在更新数据页面时会自动加密。当前配置为off时,表示关闭透明数据加密,从on切换为off后,对于新写入的数据不再加密,对于已加密的旧数据在读取时可以自动解密,重新写回数据页面时则不再加密。

      默认值:off

    • hasuids(bool类型)

      默认值:off

      参数开启:更新表元组时,为元组分配表级唯一标识id。

  • new_owner

    表新拥有者的名称。

  • new_tablespace

    表所属新的表空间名称。

  • column_namecolumn_1_name, column_2_name

    现存的或新字段的名称。

  • data_type

    新字段的类型,或者现存字段的新类型。

  • compress_mode

    表字段的压缩可选项。该子句指定该字段优先使用的压缩算法。行存表不支持压缩。

  • collation

    字段排序规则名称。可选字段COLLATE指定了新字段的排序规则,如果省略,排序规则为新字段的默认类型。排序规则可以使用“select * from pg_collation”命令从pg_collation系统表中查询,默认的排序规则为查询结果中以default开始的行。

  • USING expression

    USING子句声明如何从旧的字段值里计算新的字段值;如果省略,缺省从旧类型向新类型的赋值转换。如果从旧数据类型到新类型没有隐含或者赋值的转换,则必须提供一个USING子句。

    ALTER TYPE的USING选项实际上可以声明涉及该行旧值的任何表达式,即它可以引用除了正在被转换的字段之外其他的字段。这样,就可以用ALTER TYPE语法做非常普遍性的转换。因为这个灵活性,USING表达式并没有作用于该字段的缺省值(如果有的话),结果可能不是缺省表达式要求的常量表达式。这就意味着如果从旧类型到新类型没有隐含或者赋值转换的话,即使存在USING子句,ALTER TYPE也可能无法把缺省值转换成新的类型。在这种情况下,应该用DROP DEFAULT先删除缺省,执行ALTER TYPE,然后使用SET DEFAULT增加一个合适的新缺省值。类似的考虑也适用于涉及该字段的索引和约束。

  • NOT NULL | NULL

    设置列是否允许空值。

  • integer

    带符号的整数常值。当使用PERCENT时表示按照表数据的百分比收集统计信息,integer的取值范围为0-100。

  • attribute_option

    属性选项。

  • PLAIN | EXTERNAL | EXTENDED | MAIN

    字段存储模式。

    • PLAIN必需用于定长的数值(比如integer)并且是内联的、不压缩的。
    • MAIN用于内联、可压缩的数据。
    • EXTERNAL用于外部保存、不压缩的数据。使用EXTERNAL将令在text和bytea字段上的子字符串操作更快,但付出的代价是增加了存储空间。
    • EXTENDED用于外部的压缩数据,EXTENDED是大多数支持非PLAIN存储的数据的缺省。
  • CHECK ( expression )

    每次将要插入的新行或者将要被更新的行必须使表达式结果为真才能成功,否则会抛出一个异常并且不会修改数据库。

    声明为字段约束的检查约束应该只引用该字段的数值,而在表约束里出现的表达式可以引用多个字段。

    目前,CHECK表达式不能包含子查询也不能引用除当前行字段之外的变量。

  • DEFAULT default_expr

    给字段指定缺省值。

    缺省表达式的数据类型必须和字段类型匹配。

    缺省表达式将被用于任何未声明该字段数值的插入操作。如果没有指定缺省值则缺省值为NULL 。

  • UNIQUE index_parameters

    UNIQUE ( column_name [, ... ] ) index_parameters

    UNIQUE约束表示表里的一个或多个字段的组合必须在全表范围内唯一。

  • PRIMARY KEY index_parameters

    PRIMARY KEY ( column_name [, ... ] ) index_parameters

    主键约束表明表中的一个或者一些字段只能包含唯一(不重复)的非NULL值。

  • DEFERRABLE | NOT DEFERRABLE | INITIALLY DEFERRED | INITIALLY IMMEDIATE

    设置该约束是否可推迟。

    • DEFERRABLE:可以推迟到事务结尾使用SET CONSTRAINTS命令检查。
    • NOT DEFERRABLE:在每条命令之后马上检查。
    • INITIALLY IMMEDIATE:在每条语句之后就立即检查它。
    • INITIALLY DEFERRED:只有在事务结尾才检查它。
  • WITH ( {storage_parameter = value} [, ... ] )

    为表或索引指定一个可选的存储参数。

  • tablespace_name

    索引所在表空间的名称。

  • COMPRESS|NOCOMPRESS
    • NOCOMPRESS:如果指定关键字NOCOMPRESS则不会修改表的现有压缩特性。
    • COMPRESS:如果指定COMPRESS关键字,则对该表进行批量插入元组时触发该特性。行存表不支持压缩。
  • new_table_name

    修改后新的表名称。

  • new_column_name

    表中指定列修改后新的列名称。

  • new_constraint_name

    修改后表约束的新名称。

  • new_schema

    修改后新的模式名称。

  • CASCADE

    级联删除依赖于被依赖字段或者约束的对象(比如引用该字段的视图)。

  • RESTRICT

    如果字段或者约束还有任何依赖的对象,则拒绝删除该字段。这是缺省行为。

  • schema_name

    表所在的模式名称。

support.huaweicloud.com/distributed-devg-v2-gaussdb/gaussdb_v5r2c10_0473.html