Tenho as seguintes colunas:
key | value
-----------
foo | 1
bar | 2
Existe uma maneira recomendada de transformar isso em hstore
?
{foo => 1, bar => 2}
Tenho as seguintes colunas:
key | value
-----------
foo | 1
bar | 2
Existe uma maneira recomendada de transformar isso em hstore
?
{foo => 1, bar => 2}
Basta usar a função
hstore()
.Existem várias versões sobrepostas dessas funções. Um leva uma única matriz de texto com chaves e valores. Outro leva dois arrays de texto, um com chaves e outro com valores. Qualquer um funciona para você. Demonstração:
option1
requer Postgres 9.5 ou posterior, onde foi introduzidoarray_agg()
para arrays multidimensionais . Para versões mais antigas, consulte:Se
value
não for typetext
, você pode precisar do cast que adicionei:value::text
O módulo adicional hstore deve ser instalado no banco de dados, é claro.
Relacionado: