के आकार को बदलें मेरे पास वास्तव में बड़ी तालिका (लगभग 30 लाख पंक्तियों) पर ALTER TABLE
कमांड के बारे में एक प्रश्न है। इसके कॉलम में से एक varchar(255)
है और मैं इसे varchar(40)
पर आकार बदलना चाहता हूं। असल में, मैं निम्न आदेश चलाकर मेरे कॉलम परिवर्तन करना चाहते हैं: यदि प्रक्रिया बहुत लंबी है लेकिन ऐसा लगता है मेरी मेज ALTER तालिका आदेश के दौरान कोई और अधिक पठनीय हैपोस्टग्रेस्क्ल - एक वर्कर कॉलम
ALTER TABLE mytable ALTER COLUMN mycolumn TYPE varchar(40);
मुझे कोई समस्या नहीं है। क्या कोई शानदार तरीका है? शायद एक नया कॉलम जोड़ें, पुराने कॉलम से मूल्य कॉपी करें, पुराने कॉलम को छोड़ दें और आखिरकार नया नाम बदलें?
किसी भी सुराग की सराहना की जाएगी! अग्रिम धन्यवाद,
नोट: मैं PostgreSQL 9.0 का उपयोग करता हूं।
बस स्पष्ट होने के लिए: आप जानते हैं कि 'आकार बदलने' तालिका को कम जगह पर कब्जा नहीं करेगा? –
मेरे मामले में भी? मेरा मतलब है कि 255 के बजाय कॉलम का अधिकतम आकार 40 char (so octets) होगा? – Labynocle
यदि आप पोस्टग्रेएसक्यूएल में 'वर्चर (255)' कहते हैं तो यह एक मान के लिए 255 बाइट आवंटित करेगा जो वास्तविक लंबाई 40 बाइट्स है। यह 40 बाइट आवंटित करेगा (साथ ही कुछ आंतरिक ओवरहेड)। एकमात्र चीज जिसे 'वैकल्पिक तालिका' द्वारा बदला जाएगा, वह अधिकतम बाइट्स है जिसे आप पीजी से त्रुटि प्राप्त किए बिना उस कॉलम में स्टोर कर सकते हैं। –