我希望在启动事务之前,为了备份原因,将数据库中的一些数据行存储为JSON(在json
类型字段中)。
类似的东西:
INSERT INTO public.backup (user_id, data) VALUES (1, (SELECT * FROM ...))
在我的应用程序中解析select并将其转换为JSON时,是否可以简单地完成它?
答案 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
。