gpt4 book ai didi

sql - PostgreSQL 动态表访问

转载 作者:搜寻专家 更新时间:2023-10-30 20:06:19 25 4
gpt4 key购买 nike

我有一个 products 架构和一些表。
products 模式中的每个表都有一个 id,通过这个 id 我可以得到这个表名,例如

products
\ product1
\ product2
\ product3

我需要从对适当产品的动态访问中选择信息,例如

SELECT * FROM 'products.'(SELECT id from categories WHERE id = 7);

当然,这不行...
我如何在 PostgreSQL 中执行类似的操作?

最佳答案

好的,我找到了解决方案:

CREATE OR REPLACE FUNCTION getProductById(cid int) RETURNS RECORD AS $$
DECLARE
result RECORD;

BEGIN
EXECUTE 'SELECT * FROM ' || (SELECT ('products.' || (select category_name from category where category_id = cid) || '_view')::regclass) INTO result;

RETURN result;
END;
$$ LANGUAGE plpgsql;

并选择:

SELECT * FROM getProductById(7) AS b (category_id int, ... );

适用于 PostgreSQL 9.x

关于sql - PostgreSQL 动态表访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5772699/

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