2012-02-17 15 views
7

मैं एसक्यूएल क्वेरी जो डेटाबेस में परिवर्तन जो करने के लिए मैं वर्तमान में लॉग इन कर रहा हूँ लिखने में सक्षम होना चाहते हैंस्पष्ट डीबी नाम के बिना वर्तमान डीबी पर वैकल्पिक डेटा?

उदाहरण:।

$ psql my_db 
psql(9.1.1) 
my_db=> ALTER DATABASE my_db SET some_variable = '0'; 
         ^^^^^ 

वहाँ एक रास्ता इस क्वेरी में डेटाबेस नाम specyfing से बचने के लिए है ?

उत्तर

15

अभी यह परीक्षण कर सकता हूँ नहीं है, लेकिन आप कोशिश कर सकते हैं जब से तुम 9.1 पर हैं:

DO $$ 
BEGIN 
    execute 'alter database '||current_database()||' set some_var = ''0'''; 
END; 
$$ 

शायद तुम() यह काम करने के लिए current_database चयन करने के लिए एक चर में की जरूरत है।

+0

यह बिना निष्पादित तत्काल बयान काम करता है। – kupson

+0

@ कुप्सन: धन्यवाद, मेरे सिर में बहुत अधिक ओरेकल;) –

+0

9.1.1 पर एक आकर्षण की तरह काम किया! धन्यवाद – Kuba

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