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 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 }
标识列操作
SET GENERATED { ALWAYS | BY DEFAULT }/SET/sequence_optionRESTART-
这些格式更改列是否为标识列,或更改现有标识列的生成属性。有关详细信息,请参阅 CREATE TABLE。比如
SET DEFAULT,这些格式只影响后续INSERT和UPDATE命令的行为;它们不会导致表中已有的行发生变化。sequence_option是 ALTER SEQUENCE(如INCREMENT BY)支持的选项。这些格式更改现有标识列所基于的序列。 DROP IDENTITY [ IF EXISTS ]-
此格式从列中移除标识属性。如果指定了
DROP IDENTITY IF EXISTS并且该列不是标识列,则不会引发任何错误。在这种情况下,将改为发出通知。