2013-08-20 10 views
5

मैं निम्नलिखित के रूप में Oracle 10g में एक तालिका बनाई ड्रॉप करने:कैसे अनाम प्राथमिक कुंजी बाधा

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

और अब इस कॉलम छोड़ने के बिना studId से प्राथमिक कुंजी निकालना चाहते हैं। मैंने इसके बारे में खोज की और Dropping unnamed constraints पाया लेकिन यह मेरी मदद भी नहीं कर सका। Sys.columns तालिका या दृश्य नहीं मिल सका।

धन्यवाद

के मैनुअल में

उत्तर

0

सवाल आप isn से लिंक ओरेकल के लिए नहीं। सिस्टम देखें USER_CONSTRAINTS में सभी बाधाओं की एक सूची है। CONSTRAINT_TYPE कॉलम में पी इंगित करता है कि यह प्राथमिक कुंजी है; आप अन्य बाधाओं को खोजने के लिए इसका उपयोग कर सकते हैं।

आप इस दृश्य का उपयोग बाधा को छोड़ने के लिए आवश्यक डीडीएल उत्पन्न करने के लिए कर सकते हैं (या अन्य जानकारी देखने के लिए)।

उदाहरण के लिए:

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

हाँ, आप सही हैं। लेकिन मेरा बिंदु वही तार्किक बात है जिसे मैंने इस बाधाओं को नाम देने की कोशिश की। बीटी इसे ला नहीं सकता था। आपकी सहायता के लिए धन्यवाद. मतदान नहीं कर सकता –

संबंधित मुद्दे