यह सवाल पुराना है, लेकिन पूर्णता के लिए...
जैसा कि अन्य उत्तरों में बताया गया है, यह केवल इसलिए संभव नहीं है क्योंकि (प्रति दस्तावेज़) :
यह भी बताया गया है कि प्रतिबंध को dblink
. से बायपास किया जा सकता है .
कैसे करें PostgreSQL में dblink का उपयोग (इंस्टॉल) करें?
अब तक जो चीज गायब थी वह वास्तव में इसे करने वाला एक उचित कार्य है:
CREATE OR REPLACE FUNCTION f_create_db(dbname text)
RETURNS integer AS
$func$
BEGIN
IF EXISTS (SELECT 1 FROM pg_database WHERE datname = dbname) THEN
RAISE NOTICE 'Database already exists';
ELSE
PERFORM dblink_exec('dbname=' || current_database() -- current db
, 'CREATE DATABASE ' || quote_ident(dbname));
END IF;
END
$func$ LANGUAGE plpgsql;
जाँचता है कि क्या db पहले से ही स्थानीय क्लस्टर में मौजूद है। यदि नहीं, तो इसे बनाने के लिए आगे बढ़ें - एक स्वच्छ पहचानकर्ता के साथ। हम SQL इंजेक्शन को आमंत्रित नहीं करना चाहेंगे।