आप मौजूदा कॉलम को वास्तविक पहचान कॉलम में नहीं बदल सकते हैं, लेकिन आप कॉलम के लिए डिफ़ॉल्ट के रूप में अनुक्रम का उपयोग करके एक समान व्यवहार प्राप्त कर सकते हैं।
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
. नहीं जोड़ना चाहिए इस मामले में ताकि सभी पंक्तियों को एक नया अद्वितीय नंबर मिल सके