ALTER TABLE
ALTER TABLE cambia la definición de una tabla.
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
Acciones de la columna de identidad
SET GENERATED { ALWAYS | BY DEFAULT }/SET/sequence_optionRESTART-
Estos formularios cambian si una columna es una columna de identidad o cambian el atributo de generación de una columna de identidad existente. Para obtener más información, consulte CREATE TABLE. Al igual que
SET DEFAULT, estos formularios solo afectan al comportamiento de los comandosINSERTyUPDATEposteriores; no provocan cambios en las filas que ya se encuentran en la tabla.La opción
sequence_optiones una opción compatible con ALTER SEQUENCE comoINCREMENT BY. Estos formularios modifican la secuencia que subyace a una columna de identidad existente. DROP IDENTITY [ IF EXISTS ]-
Este formulario elimina la propiedad de identidad de una columna. Si se especifica
DROP IDENTITY IF EXISTSy la columna no es una columna de identidad, no se genera ningún error. En este caso, se emite un aviso en su lugar.
Agregación de acciones de restricción
ADDtable_constraint_using_index-
Este formulario agrega una nueva restricción
UNIQUEa una tabla en función de un índice único existente. Todas las columnas del índice se incluirán en la restricción.El índice debe estar en un estado
VALID; no se admite agregar una restricción única mediante un índice mientras el índice se está creando actualmente.Si se proporciona un nombre de restricción, se cambiará el nombre del índice para que coincida con el nombre de la restricción. De lo contrario, la restricción tendrá el mismo nombre que el índice.
Tras ejecutar este comando, el índice pasa a ser propiedad de la restricción, del mismo modo que si el índice lo hubiera creado un comando
CREATE UNIQUE INDEX ASYNCnormal. En concreto, si se elimina la restricción, el índice también desaparecerá.