ALTER TABLE |
#NAMEDEF# |
---|---|
PostgreSQL |
Syntaxe
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 où l'action est l'une des suivantes : 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 } et table_constraint_using_index est : [ CONSTRAINT constraint_name ] { UNIQUE | PRIMARY KEY } USING INDEX index_name [ DEFERRABLE | NOT DEFERRABLE ] [ INITIALLY DEFERRED | INITIALLY IMMEDIATE ] |
Paramètres
Nom | Description |
---|---|
IF EXISTS | Ce paramètre permet d'indiquer si la table existe. Ne renvoie pas d'erreur si la table n'existe pas. Un avis est émis dans ce cas. |
name | Ce paramètre permet d'indiquer le nom (éventuellement qualifié par le schéma) d'une table existante à modifier. Si ONLY est spécifié avant le nom de la table, seule cette table est modifiée. Si ONLY n'est pas spécifié, la table et toutes ses tables descendantes (le cas échéant) sont modifiées. Facultativement, * peut être spécifié après le nom de la table pour indiquer explicitement que les tables descendantes sont incluses. |
column_name | Ce paramètre permet d'indiquer un nom d'une colonne nouvelle ou existante. |
new_column_name | Ce paramètre permet d'indiquer un nouveau nom pour une colonne existante. |
new_name | Ce paramètre permet d'indiquer un nouveau nom pour la table. |
data_type | Ce paramètre permet d'indiquer le type de données de la nouvelle colonne ou nouveau type de données pour une colonne existante. |
table_constraint | Ce paramètre permet d'indiquer la nouvelle contrainte de table pour la table. |
constraint_name | Ce paramètre permet d'indiquer le nom d'une contrainte nouvelle ou existante. |
CASCADE | Ce paramètre permet de supprimer automatiquement les objets dépendant de la colonne ou de la contrainte supprimée (par exemple, les vues référençant la colonne), et à leur tour tous les objets dépendant de ces objets. |
RESTRICT | Ce paramètre permet de refuser de supprimer la colonne ou la contrainte s'il existe des objets dépendants. Ceci est le comportement par défaut. |
trigger_name | Ce paramètre permet d'indiquer le nom d'un seul déclencheur à désactiver ou à activer. |
ALL | Ce paramètre permet de désactiver ou d'activer tous les déclencheurs appartenant à la table. (Cela nécessite un privilège de superutilisateur si l'un des déclencheurs est un déclencheur de contrainte généré en interne, comme ceux étant utilisés pour implémenter des contraintes de clef étrangère ou des contraintes d'unicité et d'exclusion reportables.) |
USER | Ce paramètre permet de désactiver ou d'activer tous les déclencheurs appartenant à la table, à l'exception des déclencheurs de contraintes générés en interne, tels que ceux étant utilisés pour implémenter des contraintes de clef étrangère ou des contraintes d'unicité et d'exclusion reportables. |
index_name | Ce paramètre permet d'indiquer le nom d'un index existant. |
storage_parameter | Ce paramètre permet d'indiquer le nom d'un paramètre d'entreposage de table. |
value | Ce paramètre permet d'indiquer la nouvelle valeur d'un paramètre d'entreposage de table. Il peut s'agir d'un nombre ou d'un mot selon le paramètre. |
parent_table | Ce paramètre permet d'indiquer une table parente à associer ou désassocier à cette table. |
new_owner | Ce paramètre permet d'indiquer le nom d'utilisateur du nouveau propriétaire de la table. |
new_tablespace | Ce paramètre permet d'indiquer le nom du tablespace vers lequel la table sera déplacée. |
new_schema | Ce paramètre permet d'indiquer le nom du schéma vers lequel la table sera déplacée. |
partition_name | Ce paramètre permet d'indiquer le nom de la table à attacher en tant que nouvelle partition ou à détacher de cette table. |
partition_bound_spec | Ce paramètre permet d'indiquer la spécification liée à la partition pour une nouvelle partition. |
Description
Cette instruction permet de changer la définition d'une table.
Dernière mise à jour : Jeudi, le 14 Octobre 2021