我试图避免使用PGSQL进行一些简单的查询,但我希望将模式名称存储为变量,稍后在多个查询中使用它:
WITH p AS (SELECT 'testSchema' AS schemaName)
CREATE SCHEMA IF NOT EXISTS p.schemaName;
create table if not exists p.schemaName.table1;
也许“with”不是正确的方式,或者我需要以不同的方式使用它。
答案 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;