View a markdown version of this page

ALTER TABLE - Amazon Aurora DSQL

ALTER TABLE

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 where action is one of: ADD [ COLUMN ] [ IF NOT EXISTS ] column_name data_type ADD table_constraint_using_index ALTER [ COLUMN ] column_name { SET GENERATED { ALWAYS | BY DEFAULT } | SET sequence_option | RESTART [ [ WITH ] restart ] } [...] ALTER [ COLUMN ] column_name DROP IDENTITY [ IF EXISTS ] OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER } and table_constraint_using_index is: [ CONSTRAINT constraint_name ] UNIQUE USING INDEX index_name

标识列操作

SET GENERATED { ALWAYS | BY DEFAULT } / SET sequence_option / RESTART

这些格式更改列是否为标识列,或更改现有标识列的生成属性。有关详细信息,请参阅 CREATE TABLE。比如 SET DEFAULT,这些格式只影响后续 INSERTUPDATE 命令的行为;它们不会导致表中已有的行发生变化。

sequence_optionALTER SEQUENCE(如 INCREMENT BY)支持的选项。这些格式更改现有标识列所基于的序列。

DROP IDENTITY [ IF EXISTS ]

此格式从列中移除标识属性。如果指定了 DROP IDENTITY IF EXISTS 并且该列不是标识列,则不会引发任何错误。在这种情况下,将改为发出通知。

添加约束操作

ADD table_constraint_using_index

此格式基于现有的唯一索引,向表添加新的 UNIQUE 约束。索引的所有列都将包含在约束中。

索引必须处于 VALID 状态;不支持使用当前正在构建中的索引来添加唯一约束。

如果提供了约束名称,则索引将被重命名以匹配约束名称。否则,约束的命名将与索引相同。

执行此命令后,索引由约束“拥有”,这种拥有方式就像索引是由常规 CREATE UNIQUE INDEX ASYNC 命令构建一样。特别的地方在于,删除约束也会使索引消失。