केवल अन्य विकल्प मैन्युअल रूप से वही करना है जो कई RDBMS सिस्टम वैसे भी करते हैं...
- एक नई तालिका बनाएं
फिर आप पुरानी तालिका की सामग्री को एक बार में एक चंक पर कॉपी कर सकते हैं। स्रोत तालिका में किसी भी INSERT/UPDATE/DELETE से हमेशा सतर्क रहते हुए। (एक ट्रिगर द्वारा प्रबंधित किया जा सकता है। हालांकि यह धीमा हो जाएगा, यह लॉक नहीं है...)
एक बार समाप्त होने पर, स्रोत तालिका का नाम बदलें, फिर नई तालिका का नाम बदलें। अधिमानतः लेन-देन में।
एक बार समाप्त होने पर, उस तालिका का उपयोग करने वाली किसी भी संग्रहीत कार्यविधियों आदि को पुन:संकलित करें। निष्पादन योजनाएँ संभवतः अब मान्य नहीं होंगी।
संपादित करें:
इस सीमा के थोड़े खराब होने के बारे में कुछ टिप्पणियां की गई हैं। इसलिए मैंने सोचा कि मैं इस पर एक नया दृष्टिकोण रखूंगा कि यह ऐसा क्यों है...
- नई फ़ील्ड जोड़ना हर पंक्ति पर एक फ़ील्ड बदलने जैसा है।
- पंक्ति लॉक की तुलना में फ़ील्ड लॉक बहुत कठिन होंगे, टेबल लॉक की परवाह न करें।
- आप वास्तव में डिस्क पर भौतिक संरचना को बदल रहे हैं, प्रत्येक रिकॉर्ड चलता रहता है।
- यह वास्तव में संपूर्ण तालिका पर एक अद्यतन की तरह है, लेकिन अधिक प्रभाव के साथ...