質問

テーブルの行をHSTORE形式にするよりも良い方法はありますか

SELECT hstore(ARRAY['col1','col2','col3'], ARRAY[col1::text, col2::text, col3::text]) FROM tbl;

動作しますが、各列を入力するよりも良い方法が必要だと思います。 HSTOREは入力のレコードタイプを取りますが、単一列の生成クエリを関数に供給して幸せにする方法を理解できませんでした。 Postgresバージョン9.0.4。

役に立ちましたか?

解決

はい - あなたはhstoreタイプにrowをキャストすることができます hstore() 関数。

SELECT hstore(tbl.*) FROM tbl;

私のために働く:

filip@filip=# select hstore(foo.*) from foo;
         hstore
------------------------
 "bar"=>"1", "baz"=>"2"
(1 row)

見る http://www.postgresql.org/docs/9.0/static/hstore.html#hstore-func-table

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top