2012-07-03 472 views
32

Estoy usando Oracle 11g para mi aplicación web. Quiero agregar una columna y un comentario a una tabla existente. Puedo hacerlo fácilmente con el siguiente comandosSQL para agregar columnas y comentarios en la tabla en un solo comando

ALTER TABLE product ADD product_description VARCHAR2(20) 

y

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

Pero yo quiero hacer por encima de tarea en un solo comando. Busqué en internet un comando para agregar una columna y comentar en un solo comando pero no pude encontrar. Me pregunto si esto es posible. Cualquier sugerencia sería muy apreciada.

+0

es la única forma de hacerlo en Oracle – mcha

Respuesta

23

No, no puedes.

No hay ninguna razón por la que deba hacerlo. Esta es una operación de una sola vez y, por lo tanto, solo toma un segundo o dos adicionales para realmente escribir y ejecutar.

Si está agregando columnas en su aplicación web, esto es más indicativo de un defecto en su modelo de datos, ya que no debería necesitar hacerlo.


Respondiendo a su comentario que un comentario es un atributo de columna; puede parecer pero detrás de las escenas Oracle almacena esto como un atributo de un objeto .

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

SQL> 

La columna es opcional y sys.col$ no contiene información comentario.

Supongo, no tengo conocimiento, que esto se hizo para tener solo un sistema de tratamiento de comentarios en lugar de múltiples.

+1

Gracias @Ben por su respuesta. Tiene razón, es una operación de una sola vez y requiere un segundo adicional para ejecutarse. Pero aún estaba buscando cualquier sintaxis para agruparlos en uno. Porque creo que el comentario es como cualquier otro atributo de la columna. Me preguntaba si puede agregar una columna con tipo de datos (debe), contraints (opcional), entonces ¿por qué no comentar? –

+0

@SunilChavan, he actualizado mi respuesta ligeramente. Sí, parece que debería ser el caso, pero técnicamente no es el caso. – Ben

+0

Whack it all en un script @Sven? No estoy seguro de cómo es diferente a la implementación de cualquier otro código: es una tarea más sencilla que alterar DDL ya que es un "reemplazo" y así puede sobrescribir lo que había anteriormente. – Ben

9

Puede utilizar la consulta a continuación para actualizar o crear comentarios sobre la tabla ya creada.

SINTAXIS:

COMMENT ON COLUMN Tablename.Column name IS 'text'; 

Ejemplo:

COMMENT ON COLUMN TAB_SAMBANGI.MY_COLUMN IS 'This is a comment on my column...'; 
+0

es este Oracle-DB solamente? ¿O SQL estándar? – asgs

+0

Más información [COMENTARIO EN LA COLUMNA] (https://my.vertica.com/docs/7.1.x/HTML/Content/Authoring/SQLReferenceManual/Statements/COMMENTONCOMMENTONCOLUMN.htm) – mhplur

-2

añadir comentarios sobre los dos diferentes columnas de la tabla EMPLEADO:

COMMENT ON EMPLOYEE 
    (WORKDEPT IS 'see DEPARTMENT table for names', 
    EDLEVEL IS 'highest grade level passed in school') 
+0

Lamentablemente, no funciona para yo :-( –

0

consultas para agregar la columna con comentario son:

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

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

commit; 
Cuestiones relacionadas