| Documentation PostgreSQL 7.2 | ||
|---|---|---|
| <<< Previous | Next >>> | |
ALTER TABLE [ ONLY ] table [ * ]
ADD [ COLUMN ] column type [ column_constraint [ ... ] ]
ALTER TABLE [ ONLY ] table [ * ]
ALTER [ COLUMN ] column { SET DEFAULT value | DROP DEFAULT }
ALTER TABLE [ ONLY ] table [ * ]
ALTER [ COLUMN ] column SET STATISTICS integer
ALTER TABLE [ ONLY ] table [ * ]
RENAME [ COLUMN ] column TO newcolumn
ALTER TABLE table
RENAME TO newtable
ALTER TABLE table
ADD table constraint definition
ALTER TABLE [ ONLY ] table
DROP CONSTRAINT constraint { RESTRICT | CASCADE }
ALTER TABLE table
OWNER TO new owner
|
Nom d'une table existante à modifier.
Nom d'une colonne existante ou nouvelle.
Type de la nouvelle colonne.
Nouveau nom d'une colonne existante.
Nouveau nom pour la table.
Nouvelle contrainte pour la table.
Le nom utilisateur de nouveau propriétaire de la table.
ALTER TABLE change la définition d'une table existante. La forme ADD COLUMN ajoute une nouvelle colonne à la table en utilisant la même syntaxe que CREATE TABLE. Les formes ALTER COLUMN SET/DROP DEFAULT vous permettent de placer ou supprimer la valeur par défaut pour la colonne. Notez que les défauts s'appliquent seulement aux commandes INSERT subséquentes; elles ne concernent pas les lignes déja présentes dans la table à modifier. La forme ALTER COLUMN SET STATISTICS vous permet de placer la cible de regroupement de statistiques pour les opérations ANALYZE subséquentes. La clause RENAME modifie le nom d'une table, colunne, index, ou séquence sans changer aucune donnée. La donnée qui reste ayant les mêmes types et tailles après la commande est exécutée. La clause ADD table constraint definition ajoute une nouvelle contrainte à la table en utilisant la même syntaxe que CREATE TABLE. La clause DROP CONSTRAINT constraint supprime toutes les contraintes de la table (et ses descendants) qui apparient constraint. La clause OWNER change le propriétaire de la table en utilisateur new user.
Vous devez être propriétaire de la table pour modifier ce schéma.
Le mot-clé COLUMN n'est que du bruit et peut être omis.
Dans l'implémentation courante de ADD COLUMN, la valeur par défaut et les clauses NOT NULL pour la nouvelle colonne ne sont pas supportés. Vous pouvez utiliser la forme SET DEFAULT de ALTER TABLE pour placer la valeur par défaut plus tard. (Vous pouvez aussi vouloir mettre à jour les lignes déja existantes vers la nouvelle valeur par défaut, en utilisant UPDATE.)
Dans DROP CONSTRAINT, le mot-clé RESTRICT est requis, bien que les dépendances ne soient pas encore vérifiées. L'option CASCADE n'est pas supportée. DROP CONSTRAINT ne supprime que les contraintes CHECK. Pour supprimer une contrainte PRIMARY ou UNIQUE, supprimez l'index en rapport en utilisant la commande DROP INDEX. Pour supprimer les contraintes FOREIGN KEY vous devez recréer et recharger la table, en utilisant les paramètres de la commande CREATE TABLE.
Par exemple, pour supprimer toutes les contraintes de la table distributors:
CREATE TABLE temp AS SELECT * FROM distributors;
DROP TABLE distributors;
CREATE TABLE distributors AS SELECT * FROM temp;
DROP TABLE temp;
|
Vous devez être propriétaire de la table pour la modifier. Changer une partie du schéma d'un catalogue système n'est pas autorisé. Le Guide de l'utilisateur PostgreSQL contient d'autres informations sur l'héritage.
Voir CREATE TABLE pour d'autres descriptions des arguments valides.
Pour ajouter une colonne de type varchar à une table :
ALTER TABLE distributors ADD COLUMN address VARCHAR(30); |
Pour renommer une colonne existante :
ALTER TABLE distributors RENAME COLUMN address TO city; |
Pour renommer une table existante :
ALTER TABLE distributors RENAME TO suppliers; |
Pour ajouter une contrainte de vérification à une table :
ALTER TABLE distributors ADD CONSTRAINT zipchk CHECK (char_length(zipcode) = 5); |
Pour supprimer une contrainte de vérification d'une table et tous ses descendants :
ALTER TABLE distributors DROP CONSTRAINT zipchk RESTRICT; |
Pour ajouter une contrainte clé-étrangère à une table :
ALTER TABLE distributors ADD CONSTRAINT distfk FOREIGN KEY (address) REFERENCES addresses(address) MATCH FULL; |
Pour ajouter une contrainte unique (multicolonne) à une table :
ALTER TABLE distributors ADD CONSTRAINT dist_id_zipcode_key UNIQUE (dist_id, zipcode); |
La forma ADD COLUMN est conforme à l'exception qu'elle ne supporte pas les valeurs par défaut et les contraintes NOT NULL, comme expliqué précédemment. La forme ALTER COLUMN est pleinement conforme.
SQL92 spécifie quelques possibilités supplémentaires pour ALTER TABLE qui ne sont pas encore directement supportées par PostgreSQL:
ALTER TABLE table DROP [ COLUMN ] column { RESTRICT | CASCADE }
|
Supprime une colonne d'une table. Couramment, pour supprimer une colonne existante la table doit être recréée et rechargée :
CREATE TABLE temp AS SELECT did, city FROM distributors;
DROP TABLE distributors;
CREATE TABLE distributors (
did DECIMAL(3) DEFAULT 1,
name VARCHAR(40) NOT NULL
);
INSERT INTO distributors SELECT * FROM temp;
DROP TABLE temp;
|
Les clauses pour renommer des tables, des colonnes, indexes et séquences sont des extensions PostgreSQL du SQL92.
| <<< Previous | Home | Next >>> |
| ALTER GROUP | Up | ALTER USER |