【问题标题】:SQL to add column and comment in table in single commandSQL在单个命令中在表中添加列和注释
【发布时间】:2012-07-03 17:47:15
【问题描述】:

我正在为我的 Web 应用程序使用 Oracle 11g。我想向现有表添加一列和注释。我可以使用以下命令轻松做到这一点

ALTER TABLE product ADD product_description VARCHAR2(20)

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

但我想在单个命令中完成上述任务。我在互联网上搜索了在单个命令中添加列和评论的命令,但我找不到。我想知道这是否可能。任何建议将不胜感激。

【问题讨论】:

  • 这是在 Oracle 上的唯一方法

标签: sql oracle oracle11g


【解决方案1】:

不,你不能。

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

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


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

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

SQL>

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

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

【讨论】:

  • 感谢@Ben 的回答。你是对的,这是一次操作,需要额外的秒来执行。但我仍然在寻找任何语法将它们合二为一。因为我认为评论就像列的任何其他属性一样。我想知道您是否可以添加具有数据类型(必须)、约束(可选)的列,那么为什么不评论呢?
  • @SunilChavan,我已经稍微更新了我的答案。是的,看起来应该是这样,但从技术上来说并非如此。
  • 在@Sven 的脚本中搞定这一切?不确定它与部署任何其他代码有何不同 - 它比将 DDL 更改为“替换”更容易,因此您可以覆盖以前的内容。
  • 向 Web 应用程序添加列通常表示新功能。缺少支持新功能的列并不是数据模型中的缺陷。
  • 我写in你的应用程序,而不是for你的应用程序。有很大的不同。
【解决方案2】:

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

语法:

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

例子:

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

【讨论】:

【解决方案3】:

添加评论列的查询是:

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

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

commit;

【讨论】:

    【解决方案4】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-06
      • 2016-04-03
      • 2019-10-21
      相关资源
      最近更新 更多