Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

Oracle 12c:मैं किसी मौजूदा प्राथमिक कुंजी कॉलम को पहचान कॉलम में कैसे संशोधित कर सकता हूं?

आप मौजूदा कॉलम को वास्तविक पहचान कॉलम में नहीं बदल सकते हैं, लेकिन आप कॉलम के लिए डिफ़ॉल्ट के रूप में अनुक्रम का उपयोग करके एक समान व्यवहार प्राप्त कर सकते हैं।

create sequence seq_tmp_identity_id
  start with 4
  increment by 1;

फिर उपयोग करें:

alter table tmp_identity 
   modify id 
   default seq_tmp_identity_id.nextval;

कॉलम को डिफ़ॉल्ट मान के रूप में अनुक्रम का उपयोग करने के लिए। यदि आप चाहें तो default on null use का उपयोग कर सकते हैं एक स्पष्ट null को अधिलेखित करने के लिए डालने के दौरान प्रदान किया गया मूल्य (यह उतना ही करीब है जितना आप किसी पहचान कॉलम तक पहुंच सकते हैं)

अगर आप असली . चाहते हैं पहचान कॉलम के लिए आपको वर्तमान id को छोड़ना होगा कॉलम और फिर इसे पहचान कॉलम के रूप में दोबारा जोड़ें:

alter table tmp_identity drop column id;

alter table tmp_identity 
     add id number(38) 
     generated always as identity;

ध्यान दें कि आपको start with 4 . नहीं जोड़ना चाहिए इस मामले में ताकि सभी पंक्तियों को एक नया अद्वितीय नंबर मिल सके



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ओरेकल plsql ट्रिगर के साथ जन्मदिन से आयु की गणना करना और तालिका में आयु सम्मिलित करना

  2. ऑर्डर बाय क्लॉज के साथ MySQL में रैंक फ़ंक्शन

  3. पीएल/एसक्यूएल प्रक्रिया का उपयोग कर ऑरैकल 10 जी में टेबल का डंप लेना

  4. संग्रहित प्रक्रिया का उपयोग करके Oracle तालिका में CSV फ़ाइल आयात करें

  5. ओरेकल क्लॉब कॉलम को क्वेरी करना