15

是否有列注释语法允许我在创建表语句(即内联)中声明列的位置直接指定列注释?11g 规范没有提到任何东西,在另一页上提到了一些东西,但我无法让它工作。有一种方法可以在创建表格后指定注释,但我认为将注释与字段定义分开很烦人。我正在寻找这样的东西(不起作用):

create table whatever (
 field number(15,0) primary key comment 'primary key generated from sequence pkseq',
 ...
)
4

4 回答 4

21

恐怕“烦人”COMMENT ON的语法是这样做的唯一方法。SQL Server、PostgreSQL 和 DB2 使用相同的语法(尽管据我所知,没有用于向数据库对象添加注释的 ANSI 标准语法)。

MySQL 支持您希望它工作的方式。我同意这将是一个更好的机制,但根据我的经验,很少有人使用评论,我怀疑甲骨文会改变它。

于 2012-05-09T12:58:18.440 回答
5

恐怕只能在创建表后使用comment on column ... is ''语法来完成。

于 2012-05-09T12:55:49.693 回答
4

解决这种烦人的语法的方法也是在 Oracles SQLExplorer 中查看和编辑表。它包含一个向导,允许您在列旁边编辑评论。它甚至允许轻松创建更改表脚本。

我在编辑表时的程序是在向导中输入更改而不实际执行它们,然后转到其DDL选项卡并从那里检索 SQL(作为更新,而不是完整的创建脚本)并在向导上按取消。然后我把创建好的SQL放到我正在写的SQL脚本中。只有当我完成脚本时,我才会执行所有操作;我从不对向导本身进行任何更改。

于 2012-06-29T08:46:14.290 回答
-1

在sqlplus(或类似的)上测试,但语法如下:

-- assuming you have privileges
COMMENT ON COLUMN SCHEMA1.TABLE1.COL1 
  IS 'My comment'

-- then you can double check like this
SELECT * FROM all_col_comments WHERE 
  (OWNER, TABLE_NAME, COLUMN_NAME) 
  IN (('SCHEMA1','TABLE1','COL1'));

请注意,注释现在将显示在 SQLDeveloper(或 Toad 或您拥有的任何环境)中,直到您重新打开所述表的属性。

类似的语法可用于注释表、索引和物化视图。[来源:https://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_4009.htm]

我知道 MySQL 和其他类似的语法存在,但它不是正确的 ANSI。不过,它非常有用。

于 2018-02-08T19:25:38.670 回答