将模式名称存储为postgresql中的变量

时间:2017-02-27 12:06:07

标签: postgresql

我试图避免使用PGSQL进行一些简单的查询,但我希望将模式名称存储为变量,稍后在多个查询中使用它:

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

也许“with”不是正确的方式,或者我需要以不同的方式使用它。

1 个答案:

答案 0 :(得分: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;