2013-08-20 28 views
5

tôi tạo ra một bảng trong oracle 10g như sau:làm thế nào để thả giấu tên ràng buộc khoá chính

CREATE TABLE studentTbl(
studId VARCHAR2(20) PRIMARY KEY, 
StudName VARCHAR2(40) 
); 

Và bây giờ muốn gỡ bỏ khóa chính từ studId mà không thả cột này. Tôi đã tìm kiếm về nó và tìm thấy Dropping unnamed constraints nhưng nó cũng không thể giúp tôi. Không thể lấy bảng hoặc chế độ xem sys.columns.

Cảm ơn

Trả lời

0

Các câu hỏi mà bạn liên kết đến isn cho Oracle. Chế độ xem hệ thống USER_CONSTRAINTS có danh sách tất cả các ràng buộc. Cột P trong cột CONSTRAINT_TYPE cho biết rằng đó là khóa chính; bạn có thể sử dụng điều này để tìm các ràng buộc khác.

Bạn có thể sử dụng chế độ xem này để tạo DDL cần thiết để giảm ràng buộc (hoặc để xem thông tin khác).

Ví dụ:

CREATE TABLE studentTbl(
studId VARCHAR2(20) PRIMARY KEY, 
StudName VARCHAR2(40) 
); 

Table created. 


select 'alter table ' || table_name 
     || ' drop constraint ' || constraint_name || ';' 
    from user_constraints 
where table_name = 'STUDENTTBL' 
    and constraint_type = 'P'; 

'ALTERTABLE'||TABLE_NAME||'DROPCONSTRAINT'||CONSTRAINT_NAME||';' 
---------------------------------------------------------------------- 

alter table STUDENTTBL drop constraint SYS_C0017725; 
+0

vâng, bạn nói đúng. nhưng quan điểm của tôi là cùng một điều logic, tôi đã cố gắng tìm ra cái tên ràng buộc này. bt không thể lấy nó. Cảm ơn bạn đã giúp đỡ. Không thể bỏ phiếu. –

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