首页 文章

使用表名的函数

提问于
浏览
0

我有一组4个表包含一些数据的不同分区 . 我还有一个plpgsql函数,它将获取一个id并将包含该数据的表的名称作为“字符变化”返回 .

但是,当我尝试使用此功能从正确的表格中进行选择时,例如

SELECT f.a FROM getTable(someID) AS f;

它似乎不起作用 . 它不会在SELECT上引发错误,但它不返回我期望的字段(即它表示f.a不存在) .

How do I select data from a table where the table name is given by the return of a function?

我正在使用PostgreSQL 9.1 . 这将在数百万条记录上运行,因此我不想将它作为两个单独的调用来执行 .

1 回答

  • 2

    我认为对于本主题中描述的问题,您应该使用inheritance表 .

    回答问题 - 使用 execute

    execute "SELECT f.a FROM " || getTable(someID) || " AS f";
    

相关问题