2016-04-03 31 views
1

Bir alt sorgunun sonucunu PostgreSQL (9.5.1) DDL deyiminde veritabanı adı olarak kullanmanın mümkün olup olmadığını merak ediyorum. Bunu çalıştırırsanızBir alt sorguyu DDL komutunda veritabanı adı nasıl kullanılır?

ALTER DATABASE (SELECT current_database()) SET a_var TO 'a_value'; 

, bir hata oluşursa:

Örneğin, ben gibi bir şey Geçerli veritabanının değiştirmek istedik

alt kullanılacak doğru yol nedir
ERROR: syntax error at or near "(" 
LINE 1: ALTER DATABASE (SELECT current_database()) SET ... 

sorgulama (eğer mümkünse)?

DO 
$do$ 
BEGIN 
EXECUTE format($f$ALTER DATABASE %I SET x.a_var TO 'a_value'$f$, current_database()); 
END 
$do$; 

ona varlık güvenle olurken db adını kaçmak için format() kullanma:

cevap