3 votes

Sélectionner une ligne en JSON dans Postgres

Existe-t-il un moyen simple de placer une ligne entière d'une table Postgres dans une colonne JSON d'une autre table ?

Voici un exemple pour illustrer ce que je cherche à faire. Disons que j'ai une table people avec le nom, l'âge et les colonnes de données :

column type
-----------
name   text
age    int
data   json

Je voudrais fusionner dans mon tableau de 2012_customers qui a beaucoup plus de colonnes. Comment pourrais-je insérer toutes ces colonnes supplémentaires dans la colonne JSON de people en conservant les noms de colonnes comme clés de données ? Voici un peu de pseudo-SQL pour cela :

insert into people
select 
name,
age,
all_fields_as_json() as json
from customers_2012

5voto

Matt Hampel Points 1490

Dans cette situation, la syntaxe correcte est d'utiliser row_to_json(table_name) :

insert into people
select 
name,
age,
row_to_json(customers_2012) as json
from customers_2012

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X