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

Sun*_*van 42 sql oracle oracle11g

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

ALTER TABLE product ADD product_description VARCHAR2(20)
Run Code Online (Sandbox Code Playgroud)

COMMENT ON COLUMN product.product_description 
     IS 'This is comment for the column';
Run Code Online (Sandbox Code Playgroud)

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

Ben*_*Ben 31

不,你不能.

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

如果您在Web应用程序中添加列,则更多地表明您的数据模型存在缺陷,因为您不应该这样做.


响应您的评论,评论是列属性; 它可能看起来如此,但在幕后,Oracle将其存储为对象的属性.

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

SQL>
Run Code Online (Sandbox Code Playgroud)

该列是可选的,sys.col$不包含注释信息.

我假设,我不知道,这是为了只有一个处理注释而不是多个系统.

  • 感谢@Ben 的回答。你是对的,这是一次操作,需要额外的秒来执行。但我仍然在寻找任何语法来将它们合二为一。因为我认为评论就像列的任何其他属性一样。我想知道您是否可以添加带有数据类型(必须)、约束(可选)的列,那么为什么不发表评论呢? (3认同)
  • 向Web应用程序添加列通常表示新功能.缺少支持新功能的列不是数据模型中的缺陷. (2认同)

小智 14

您可以使用以下查询来更新或创建已创建表的注释.

句法:

COMMENT ON COLUMN TableName.ColumnName IS 'comment text';
Run Code Online (Sandbox Code Playgroud)

例:

COMMENT ON COLUMN TAB_SAMBANGI.MY_COLUMN IS 'This is a comment on my column...';
Run Code Online (Sandbox Code Playgroud)


Sur*_*esh 5

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

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

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

commit;
Run Code Online (Sandbox Code Playgroud)