2012-12-01 16 views
5

में अप्रयुक्त कॉलम का पुन: उपयोग कैसे करें मेरे पास 4 कॉलम, आईडी, NAME, एज और COUNTRY वाली एक तालिका है। कुछ समय के उद्देश्य मैं नीचे से अप्रयुक्त के रूप में मेरी उम्र स्तंभ की स्थापना की है के लिए आदेशओरेकल डीबी

alter table Personal set unused column AGE; 

अब मैं उसी स्तंभ उम्र फिर से उपयोग करने के लिए, ओरेकल (10g) में यह करने के लिए कैसे करना चाहते हैं।

और कॉलम छोड़ना और अप्रयुक्त में कॉलम सेट करना जो सबसे अच्छा विकल्प है। कृपया मुझे गाइड करें।

उत्तर

12

आप पुन: उपयोग नहीं कर सकते हैं एक अप्रयुक्त कॉलम। कॉलम पर एकमात्र संभावित कार्रवाई इसे तालिका से हटाना है।

लेकिन आप अप्रयुक्त कॉलम को हटाए बिना भी एक ही नाम के साथ एक नया कॉलम जोड़ सकते हैं।

documentation

ALTER तालिका ... ड्रॉप अप्रयुक्त कॉलम बयान से अप्रयुक्त स्तंभों पर अनुमति केवल कार्रवाई है। यह तालिका से अप्रयुक्त कॉलम को भौतिक रूप से हटा देता है और डिस्क स्थान पुनः प्राप्त करता है।

वैकल्पिक तालिका विवरण में, वैकल्पिक खंड CHECKPOINT निर्दिष्ट है। इस खंड में पंक्तियों की निर्दिष्ट संख्या को संसाधित करने के बाद चेकपॉइंट लागू किया जाता है, इस मामले में 250. पूर्ववत स्थान के संभावित थकावट से बचने के लिए ड्रॉप कॉलम ऑपरेशन के दौरान संचित पूर्ववत लॉग की मात्रा पर चेकपॉइंटिंग कटौती।

ALTER TABLE hr.admin_emp DROP UNUSED COLUMNS CHECKPOINT 250; 

और यह अन्य (जोर मेरा):

अंकन अप्रयुक्त

आप समय की लंबाई के बारे में चिंतित हैं, तो यह सब से स्तंभ डेटा ड्रॉप करने का समय लग सकता कॉलम एक बड़ी मेज में पंक्तियों के, आप वैकल्पिक तालिका का उपयोग कर सकते हैं ... सेट अनसुलझा बयान। यह कथन अप्रयुक्त के रूप में एक या अधिक स्तंभों को चिह्नित करता है, लेकिन वास्तव में लक्षित कॉलम डेटा को हटा नहीं देता है या इन कॉलमों पर कब्जा कर लिया गया डिस्क स्थान पुनर्स्थापित नहीं करता है। हालांकि, अप्रयुक्त के रूप में चिह्नित एक कॉलम क्वेरी या डेटा डिक्शनरी दृश्यों में प्रदर्शित नहीं होता है, और इसका नाम हटा दिया गया है ताकि एक नया कॉलम उस नाम का पुन: उपयोग कर सके। कॉलम पर परिभाषित सभी बाधाओं, अनुक्रमणिका, और आंकड़े भी हटा दिए जाते हैं।

+0

संदर्भित प्रलेखन 11g के लिए है, लेकिन 10 ग्राम में [वही नियम लागू] (http://docs.oracle.com/cd/B19306_01/server.102/b14231/tables.htm#sthref2328) – jachguate

+1

धन्यवाद अच्छा समाधान, जचगुएट के लिए बहुत कुछ। – Mohan