我想應該能夠編寫改變數據庫至極目前我登錄到SQL查詢在沒有顯式數據庫名稱的當前數據庫上的ALTER DATABASE?
例:
$ psql my_db
psql(9.1.1)
my_db=> ALTER DATABASE my_db SET some_variable = '0';
^^^^^
有沒有一種方法,以避免在此查詢specyfing數據庫名稱?
我想應該能夠編寫改變數據庫至極目前我登錄到SQL查詢在沒有顯式數據庫名稱的當前數據庫上的ALTER DATABASE?
例:
$ psql my_db
psql(9.1.1)
my_db=> ALTER DATABASE my_db SET some_variable = '0';
^^^^^
有沒有一種方法,以避免在此查詢specyfing數據庫名稱?
現在不能測試,但因爲你是9.1,你可以嘗試:
DO $$
BEGIN
execute 'alter database '||current_database()||' set some_var = ''0''';
END;
$$
也許你需要選擇current_database()到一個變量,使其工作。
如果您在psql
執行腳本可以使用的psql
替代機制:
alter database :DBNAME SET ...
的文檔是在這裏:http://www.postgresql.org/docs/current/interactive/app-psql.html#APP-PSQL-VARIABLES
它可以不立即執行中的語句。 – kupson 2012-02-17 16:27:02
@kupson:謝謝,太多的Oracle在我腦海裏;) – 2012-02-17 16:36:12
就像9.1.1上的魅力一樣工作!謝謝 – Kuba 2012-02-17 17:36:32