web-dev-qa-db-ja.com

単一のコマンドでテーブルに列とコメントを追加するSQL

WebアプリケーションにOracle 11gを使用しています。既存のテーブルに列とコメントを追加したい。以下のコマンドで簡単にできます

ALTER TABLE product ADD product_description VARCHAR2(20)

そして

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

しかし、単一のコマンドで上記のタスクを実行したいです。単一のコマンドで列とコメントを追加するコマンドをインターネットで検索しましたが、見つかりませんでした。これは可能かしら。ご提案をいただければ幸いです。

40
Sunil Chavan

いいえ、できません。

必要になる理由はありません。これは1回限りの操作であるため、実際に入力して実行するのに1〜2秒しかかかりません。

Webアプリケーションに列を追加する場合、これはデータモデルの欠陥を示すものであり、実行する必要はありません。


コメントに対する応答として、コメントは列属性です。 seemの場合もありますが、Oracleはこれをobjectの属性として格納します。

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

SQL>

列はオプションで、sys.col$にはコメント情報が含まれていません。

これは、複数ではなくコメントを処理するシステムを1つだけにするために行われたものだと思います。

29
Ben

以下のクエリを使用して、作成済みのテーブルのコメントを更新または作成できます。

構文:

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

例:

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

コメント付きの列を追加するクエリは次のとおりです。

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

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

commit;
2
Suresh