日期:2014-05-16  浏览次数:20758 次

postgresql 如何批量更新数据库,有这么难吗!!!
有一组数据:

  id name
---------------------------
  s-001 jack
  s-002 tom  
  s-005 john

前台已使用 json 对上组数据进行存储 {id:s-001, name:jack ...... }

问题一:如何把这组数据批量插入到数据库,最好使用存储过程  

问题二:postgreSQL 如何把 "a,d,2ed,we4e,dag" 解析为一个 array 



------解决方案--------------------
问题2:

select string_to_array('a,d,2ed,we4e,dag',',') as ay;

--结果
ay
--------------------
 {a,d,2ed,we4e,dag}
(1 行记录)
------解决方案--------------------
问题1:

存储过程不能直接解析json,因此最好前台把json解析成字符串,传入存储过程进行批量更新。如解析成如下的字符串:
"s-001,jack:s-002,tom:s-005,john"

--使用postgresql的函数进行行列转换插入到目标的表之中

insert into 目标表
select (string_to_array(str,','))[1],
(string_to_array(str,','))[2] 
from unnest(string_to_array('s-001,jack:s-002,tom:s-005,john',':')) as t(str);