【发布时间】:2014-11-20 15:35:22
【问题描述】:
我已经阅读了related question,但与用户 kenthewala 不同,我想将一组 JSON 对象放入数据库中。
我的 JSON 文件如下所示:
{
"tablename_a":[{"a_id":1,"b_id":2,"c_id":3},
{"a_id":2,"b_id":51,"c_id":3}],
"tablename_b":[{"b_id":2,"name":"John Doe", "z_id":123},
{"b_id":51,"name":"Mary Ann", "z_id":412}],
"tablename_c":[{"c_id":3, "OS type":"Windows 7"}],
"tablename_z":[{"z_id":123, "Whatever":"Something"},
{"z_id":123, "Whatever":"Something else"}]
}
数据库中已存在具有相应名称的表。
在我想象的伪代码中
for each key in JSON_FILE as tbl_name
(
insert into tbl_name select * from json_populate_recordset
(
null::tbl_name, 'content of tbl_name'
)
)
但我不确定,如何实现这一点。
我正在使用 PostgreSQL 9.3.5(如果有帮助的话,还有 PHP 5.3.3)。
表结构类似于 JSON 文件(因为我最初从数据库中导出了 JSON):
create table tablename_a (a_id integer, b_id integer, c_id integer);
create table tablename_b (b_id integer, name text, z_id integer);
等等。
【问题讨论】:
-
至少一个表的实际表定义会很好。
CREATE TABLE ...。并且总是你的 Postgres 版本。 -
你是对的,谢谢你的提示!相应地更改了我的帖子。
标签: sql json postgresql import common-table-expression