2017-02-27 51 views
0

我試圖避免使用PGSQL對於一些簡單的查詢一個變量,但我想的架構名稱存儲爲一個變量,後來在多個查詢使用它:存儲架構名稱爲PostgreSQL的

WITH p AS (SELECT 'testSchema' AS schemaName) 
CREATE SCHEMA IF NOT EXISTS p.schemaName; 
create table if not exists p.schemaName.table1; 

也許「與」不是正確的方式,或者我可能需要以不同的方式使用它。

回答

0

您應該使用SQL語句SET,或許使用LOCAL選項,但這不適用於CREATE SCHEMA

像這樣:

BEGIN; -- start transaction 
CREATE SCHEMA IF NOT EXISTS testschema; 
SET LOCAL search_path = 'testschema'; -- only for this transaction 
CREATE TABLE IF NOT EXISTS table1 ...; -- will be created in testschema 
COMMIT; 
+0

我最終使用:SET LOCAL SEARCH_PATH = 'schema1', 'SCHEMA2';因爲我的腳本中需要超過1個模式。 –