web-dev-qa-db-fra.com

SQL pour ajouter une colonne et un commentaire dans une table en une seule commande

J'utilise Oracle 11g pour mon application Web. Je veux ajouter une colonne et un commentaire à une table existante. Je peux le faire facilement avec les commandes ci-dessous

ALTER TABLE product ADD product_description VARCHAR2(20)

et

COMMENT ON COLUMN product.product_description 
     IS 'This is comment for the column';

Mais je veux faire la tâche ci-dessus en une seule commande. J'ai cherché sur Internet une commande permettant d'ajouter une colonne et un commentaire en une seule commande, mais je n'ai pas trouvé. Je me demande si c'est possible. Toutes les suggestions seraient très appréciées.

40
Sunil Chavan

Non, tu ne peux pas.

Il n'y a aucune raison pour que vous deviez le faire. Il s’agit d’une opération unique et ne prend donc qu’une ou deux secondes supplémentaires pour taper et exécuter en réalité.

Si vous ajoutez des colonnes dans votre application Web, cela est plus révélateur d'une faille dans votre modèle de données car vous ne devriez pas avoir à le faire.


En réponse à votre commentaire, un commentaire est un attribut de colonne; cela peut semble donc, mais en coulisse, Oracle le stocke comme attribut d'un objet.

SQL> desc sys.com$
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 OBJ#                                      NOT NULL NUMBER
 COL#                                               NUMBER
 COMMENT$                                           VARCHAR2(4000)

SQL>

La colonne est facultative et sys.col$ ne contient pas d'informations de commentaire.

Je suppose, je ne le sais pas, que cela a été fait pour avoir un seul système de traitement des commentaires plutôt que plusieurs.

29
Ben

Vous pouvez utiliser la requête ci-dessous pour mettre à jour ou créer un commentaire sur la table déjà créée.

SYNTAXE:

COMMENT ON COLUMN TableName.ColumnName IS 'comment text';

Exemple:

COMMENT ON COLUMN TAB_SAMBANGI.MY_COLUMN IS 'This is a comment on my column...';
13
Ravi Sambangi

Les requêtes pour ajouter une colonne avec un commentaire sont:

alter table table_name 
add( "NISFLAG"    NUMBER(1,0) )

comment on column "ELIXIR"."PRD_INFO_1"."NISPRODGSTAPPL" is 'comment here'

commit;
2
Suresh