SQL在单个命令中在表中添加列和注释

时间:2012-07-03 09:55:29

标签: sql oracle oracle11g

我正在使用Oracle 11g作为我的Web应用程序。我想在现有表中添加列和注释。我可以使用以下命令轻松完成此操作

ALTER TABLE product ADD product_description VARCHAR2(20)

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

但我想在单一命令中执行上述任务。我在互联网上搜索了一个命令,在一个命令中添加一个列和注释,但我找不到。我想知道这是否可行。任何建议都将受到高度赞赏。

4 个答案:

答案 0 :(得分:29)

不,你不能。

没有理由你需要。这是一次性操作,因此实际输入和执行只需要一两秒钟。

如果您在Web应用程序中添加列,则更能说明您的数据模型存在缺陷,因为您不需要这样做。


回复您的评论,评论是列属性;它可能似乎,但在幕后,Oracle将其存储为对象的属性

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

SQL>

该列是可选的,sys.col$不包含评论信息。

我认为,我不知道这是为了只有一个系统来处理评论而不是多个。

答案 1 :(得分:13)

您可以使用以下查询来更新或创建已创建表格的评论。

语法:

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

示例:

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

答案 2 :(得分:2)

添加带注释的列的查询是:

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

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

commit;

答案 3 :(得分:-2)

为EMPLOYEE表的两个不同列添加注释:

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