将SELECT输出存储到'json'类型字段

时间:2015-05-01 11:35:03

标签: sql json postgresql

我希望在启动事务之前,为了备份原因,将数据库中的一些数据行存储为JSON(在json类型字段中)。

类似的东西:

INSERT INTO public.backup (user_id, data) VALUES (1, (SELECT * FROM ...))

在我的应用程序中解析select并将其转换为JSON时,是否可以简单地完成它?

1 个答案:

答案 0 :(得分:1)

您可以将整行转换为json this question here

INSERT INTO public.backup (user_id, data)
SELECT 1, row_to_json(t)
FROM   tbl t
WHERE  ...;  -- select some rows

请注意,如果源是查询而不是普通表,则保留列名并不是那么简单。

在Postgres 9.4或更高版本中,请考虑数据列的数据类型jsonb。相同的查询,结果将自动转换为jsonb