2012-07-03 30 views
32

Tôi đang sử dụng Oracle 11g cho ứng dụng web của mình. Tôi muốn thêm một cột và một bình luận vào một bảng hiện có. Tôi có thể làm điều đó một cách dễ dàng với bên dưới lệnhSQL để thêm cột và nhận xét trong bảng theo lệnh đơn

ALTER TABLE product ADD product_description VARCHAR2(20) 

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

Nhưng tôi muốn làm trên nhiệm vụ trong lệnh duy nhất. Tôi tìm kiếm trên internet cho một lệnh để thêm một cột và bình luận trong một lệnh duy nhất nhưng tôi không thể tìm thấy. Tôi tự hỏi nếu điều này là có thể. Chúng tôi rất trân trọng ý kiến ​​đóng góp của bạn.

+0

đó là cách duy nhất để thực hiện trên Oracle – mcha

Trả lời

23

Không, bạn không thể.

Không có lý do gì bạn cần. Đây là thao tác một lần và chỉ mất thêm một hoặc hai giây để thực sự nhập và thực thi.

Nếu bạn đang thêm cột trong ứng dụng web của mình, điều này sẽ mang tính chỉ dẫn về một lỗ hổng trong mô hình dữ liệu của bạn vì bạn không cần phải thực hiện nó.


Để trả lời nhận xét của bạn rằng nhận xét là thuộc tính cột; nó có thể dường như vì vậy nhưng đằng sau hậu trường, Oracle lưu trữ điều này dưới dạng thuộc tính của đối tượng .

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

SQL> 

Cột này là tùy chọn và sys.col$ không chứa thông tin nhận xét.

Tôi cho rằng, tôi không có kiến ​​thức, rằng điều này đã được thực hiện để chỉ có một hệ thống xử lý các nhận xét chứ không phải là nhiều.

+1

Cảm ơn @Ben cho câu trả lời của bạn. Bạn nói đúng, nó là một hoạt động một thời gian và mất thêm giây để thực hiện. Nhưng tôi vẫn đang tìm kiếm bất kỳ cú pháp nào để kết hợp chúng với nhau. Bởi vì tôi nghĩ bình luận giống như bất kỳ thuộc tính nào khác của cột. Tôi đã tự hỏi nếu bạn có thể thêm cột với datatype (phải), contraints (tùy chọn) thì tại sao không bình luận? –

+0

@SunilChavan, tôi đã cập nhật câu trả lời của mình một chút. Có, nó có vẻ như đó nên là trường hợp nhưng nó không phải, về mặt kỹ thuật trường hợp. – Ben

+0

Whack tất cả trong một kịch bản @Sven? Không chắc chắn về việc triển khai mã khác như thế nào - đó là một tải dễ dàng hơn việc thay đổi DDL như là một "thay thế" và vì vậy bạn có thể ghi đè lên những gì đã có trước đó. – Ben

9

Bạn có thể sử dụng truy vấn bên dưới để cập nhật hoặc tạo nhận xét trên bảng đã tạo.

CÚ PHÁP:

COMMENT ON COLUMN Tablename.Column name IS 'text'; 

Ví dụ:

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

là chỉ Oracle-DB này? Hoặc chuẩn SQL? – asgs

+0

Thông tin khác [COMMENT ON COLUMN] (https://my.vertica.com/docs/7.1.x/HTML/Content/Authoring/SQLReferenceManual/Statements/COMMENT/COMMENTONCOLUMN.htm) – mhplur

-2

Thêm ý kiến ​​cho hai cột khác nhau của bảng EMPLOYEE:

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

Thật không may, nó không hoạt động cho tôi :-( –

0

Query để thêm cột với bình luận là:

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

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

commit; 
Các vấn đề liên quan