2017-02-27 53 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个模式。 –