Overblog Suivre ce blog
Editer l'article Administration Créer mon blog
10 avril 2012 2 10 /04 /avril /2012 13:59

 

SQL - ALTER TABLE DROP COLUMN.

Comment supprimer une colonne ou un champ dans une table Oracle.
Comment faire un drop column dans une table Oracle.

SUPPRIMER UNE COLONNE AVEC ALTER TABLE DROP COLUMN.

La clause sql DROP COLUMN de l’instruction sql ALTER TABLE permet de supprimer une colonne existante dans une table Oracle.
Si on supprime une colonne d'une table les index définis sur la colonne sont également supprimés.
Si on supprime une colonne d'une table les contraintes faisant référence à la colonne sont supprimés.

Si la colonne à supprimer est une Primary Key avec des Foreign Key la référençant, Oracle retournera une erreur.
Il faut spécifier la clause CASCADE CONTRAINTES, dans ce cas Oracle supprime toutes les contraintes qui font référence à la colonne.
Oracle invalide automatiquement tous les objets dépendants de la colonne supprimée, tels que les vues, les déclencheurs,...

Vous ne pouvez pas supprimer une colonne :
- d'une table compressée ou une table partitionnée contenant une partition compressée.
- sur laquelle un DOMAIN INDEX a été construit.

SYNTAXE COMMANDE SQL ALTER TABLE DROP COLUMN.

 
 ALTER TABLE table_name DROP { COLUMN column | (column [, column ]...)} [ { CASCADE CONSTRAINTS | INVALIDATE } ]; 

 

ORA-12992: impossible de supprimer la colonne clé parent.

Ici nous essayons de supprimer une colonne PK (Primary Key) qui est référencé dans une FK (Foreign Key).
Cette erreur Oracle est du à la non utilisation de la clause CASCADE CONSTRAINTS.

 
 SQL> ALTER TABLE emp DROP COLUMN empno; ALTER TABLE emp DROP COLUMN empno * ERREUR à la ligne 1 : ORA-12992: impossible de supprimer la colonne clé parent SQL> 

 

SUPPRIMER UNE COLONNE AVEC LA CLAUSE CASCADE CONSTRAINTS.

Avec la clause CASCADE CONSTRAINTS la suppression de la colonne est une réussite.

 
 SQL> ALTER TABLE emp DROP COLUMN empno CASCADE CONSTRAINTS; Table modifiée. SQL> 

 

SUPPRIMER PLUSIEURS COLONNES AVEC ALTER TABLE DROP COLUMN

Pour supprimer plusieurs colonne d'une table dans Oracle, nous utilisons ALTER TABLE DROP sans le mot clé COLUMN.
Les colonnes à supprimer sont placées entre parenthèses juste après le mot clé DROP de la commande ALTER TABLE.

 
 SQL> ALTER TABLE emp DROP (ename,job); Table modifiée. SQL> 

 

Haut de Page www.dba-ora.fr

 

Liens en rapport avec l'article et qui sont susceptibles de vous intéresser
• Modifier un champ de table Oracle ALTER TABLE MODIFY
• Ajouter un champ de table Oracle ALTER TABLE ADD
• Renommer Colonne avec ALTER TABLE RENAME COLUMN
• Créer une table Oracle avec CREATE TABLE

Partager cet article

Repost 0
Published by Daniel Roesch - dans COMMANDES SQL DDL-LDD
commenter cet article

commentaires