Section courante

A propos

Section administrative du site

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