2015-11-30 12 views
7

पर लेन-देन ब्लॉक के अंदर चला सकते हैं नहीं मैं एक मिल गया है।Redshift वैक्यूम SQLWorkbenchJ

+0

कनेक्शन विंडो पर 'ऑटोोकॉमिट' चालू करने के बाद, 'वैक्यूम' सामान्य रूप से चल रहा है। –

उत्तर

10

आप की जरूरत नहीं है कनेक्शन प्रोफ़ाइल बदलने की जरूरत है, तो आप set autocommit

set autocommmit on; 
vacuum; 
set autocommmit off; 

के साथ "ऑन-द-मक्खी" अपने SQL स्क्रिप्ट के अंदर autocommit संपत्ति को बदल सकते हैं तुम भी वर्तमान autocommit राज्य टॉगल कर सकते हैं मेनू के माध्यम से "एसक्यूएल -> Autocommit"

+0

समझ गया, बहुत बहुत धन्यवाद^_^ –

+1

हाय, जब मैं इन 3 एसक्यूएल कमांड को SQLWorkBenchJ में चलाता हूं तो मुझे एक त्रुटि संदेश मिला: त्रुटि: पर या उसके पास वाक्यविन्यास त्रुटि स्थिति: 17 –

+0

@ टिंगजिया: मेरे लिए काम करता है । शायद आप SQL वर्कबेंच का पुराना संस्करण उपयोग कर रहे हैं। –

3

मेरे लिए यह काम किया।

END TRANSACTION; 
VACCUM <TABLENAME>; 
+1

मेरे लिए भी काम किया, बहुत बहुत धन्यवाद। –

1

पर autocommit चालू और बंद एक hacky समाधान खासकर यदि आप एक लंबे स्क्रिप्ट प्रतिबद्ध और वैक्युम साथ punctuated (बहुत बड़े अस्थायी तालिकाओं का यानी बहुत सारे) है की तरह लगता है। इसके बजाय, कोशिश करें (एक पंक्ति में)। इसके अलावा, कई रिपोर्टिंग रेडशिफ्ट को सिंटैक्स पसंद नहीं है। इसके बजाय,

COMMIT;VACUUM;COMMIT; 

समस्या यह है कि वैक्यूम न केवल एक सौदे ब्लॉक में पहले आदेश बनना चाहता है, यह स्पष्ट रूप से ब्लॉक के बाद प्रतिबद्ध होना चाहता है।

संबंधित मुद्दे