现在我习惯手动解析json并将其插入到字符串中,如下所示
insert into Table (field1, field2) values (val1, val2)
但从JSON插入数据的方式并不舒适!我发现了函数json_populate_record并尝试使用它:
但使用 json_populate_record 函数插入数据并不方便。
create table test (id serial, name varchar(50));
insert into test select * from json_populate_record(NULL::test, '{"name": "John"}');
但是它失败了,并显示消息:在“id”列中的null值违反了非空约束。PG知道id是序列,但假装自己是个傻瓜。对于所有具有默认值的字段也是如此。
是否有更优雅的方式将JSON数据插入表中?
json_populate_record
。嗯,它在哪里?这个函数的定义是什么?你是在运行PostgreSQL 9.3 beta,还是从其他地方安装了这个函数? - Craig Ringer