gpt4 book ai didi

sql - PostgreSQL:在查询中使用变量

转载 作者:行者123 更新时间:2023-11-29 14:20:44 32 4
gpt4 key购买 nike

我正在循环创建一堆模式。我有这样的东西:

FOR i in 0 .. num_schemas LOOP
schema_name := 'test' || i;
CREATE SCHEMA testschema;
CREATE TABLE testschema.testtable (
test_id UUID PRIMARY KEY,
test_address VARCHAR
);

END LOOP;

但是,这是行不通的;它尝试创建一个字面名称为“testschema”的模式,而不是 test0、test1...test'n'。那么,如何在此类查询中使用变量?

最佳答案

为此,您需要动态 SQL。但是我不会为每个表添加前缀,而是在创建它之后更改当前模式。这样你就不需要为你创建的每个表添加前缀:

FOR i in 0 .. num_schemas LOOP
schema_name := 'test' || i;
execute 'CREATE SCHEMA '||schema_name;
execute 'set search_path = '||schema_name;
CREATE TABLE testtable ( -- this will be created in the just created schema
test_id UUID PRIMARY KEY,
test_address VARCHAR
);
END LOOP;

关于sql - PostgreSQL:在查询中使用变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28216344/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com