Exemples ALTER TABLE ADD et DROP COLUMN - Amazon Redshift

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Exemples ALTER TABLE ADD et DROP COLUMN

Les exemples suivants montrent comment utiliser ALTER TABLE pour ajouter, puis supprimer une colonne de table de base, ainsi que pour supprimer une colonne avec un objet dépendant.

ADD puis DROP une colonne de base

L’exemple suivant ajoute une colonne FEEDBACK_SCORE autonome à la table USERS. Cette colonne contient simplement un nombre entier et la valeur par défaut de cette colonne est NULL (pas de score de commentaire).

Commencez par interroger la table du catalogue PG_TABLE_DEF pour afficher le schéma de la table USERS :

column | type | encoding | distkey | sortkey --------------+------------------------+----------+---------+-------- userid | integer | delta | true | 1 username | character(8) | lzo | false | 0 firstname | character varying(30) | text32k | false | 0 lastname | character varying(30) | text32k | false | 0 city | character varying(30) | text32k | false | 0 state | character(2) | bytedict | false | 0 email | character varying(100) | lzo | false | 0 phone | character(14) | lzo | false | 0 likesports | boolean | none | false | 0 liketheatre | boolean | none | false | 0 likeconcerts | boolean | none | false | 0 likejazz | boolean | none | false | 0 likeclassical | boolean | none | false | 0 likeopera | boolean | none | false | 0 likerock | boolean | none | false | 0 likevegas | boolean | none | false | 0 likebroadway | boolean | none | false | 0 likemusicals | boolean | none | false | 0

Maintenant, ajoutez la colonne feedback_score :

alter table users add column feedback_score int default NULL;

Sélectionnez la colonne FEEDBACK_SCORE de la table USERS pour vérifier qu’elle a été ajoutée :

select feedback_score from users limit 5; feedback_score ---------------- NULL NULL NULL NULL NULL

Supprimez la colonne pour rétablir le DDL d’origine :

alter table users drop column feedback_score;

Suppression d’une colonne avec un objet dépendant

L’exemple suivant supprime une colonne qui a un objet dépendant. En conséquence, l’objet dépendant est également supprimé.

Pour commencer, ajoutez à nouveau la colonne FEEDBACK_SCORE à la table USERS :

alter table users add column feedback_score int default NULL;

Ensuite, créez une vue de la table USERS appelée USERS_VIEW :

create view users_view as select * from users;

Maintenant, essayez de supprimer la colonne FEEDBACK_SCORE de la table USERS. Cette instruction DROP utilise le comportement par défaut (RESTRICT) :

alter table users drop column feedback_score;

Amazon Redshift affiche un message d’erreur indiquant que la colonne ne peut pas être supprimée, car un autre objet en dépend.

Essayez à nouveau de supprimer la colonne FEEDBACK_SCORE, cette fois en spécifiant CASCADE pour supprimer tous les objets dépendants :

alter table users drop column feedback_score cascade;