0

一部のデータの異なるパーティションを含む 4 つのテーブルのセットがあります。また、id を受け取り、そのデータを含むテーブルの名前を「文字の変化」として返す plpgsql 関数もあります。

ただし、この関数を使用して正しいテーブルから選択しようとすると、たとえば

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

うまくいかないようです。SELECT でエラーはスローされませんが、期待しているフィールドも返されません (つまり、fa が存在しないと表示されます)。

関数の戻り値によってテーブル名が指定されているテーブルからデータを選択するにはどうすればよいですか?

PostgreSQL 9.1 を使用しています。これは何百万ものレコードに対して実行されるため、2 つの別々の呼び出しとして実行する必要はありません。

4

1 に答える 1

2

トピックで説明されている問題については、テーブルで継承を使用する必要があると思います。

質問への回答 - execute を使用:

execute "SELECT f.a FROM " || getTable(someID) || " AS f";
于 2012-12-11T12:18:21.287 に答える