繁体   English   中英

postgres 9.1上的row_to_json

[英]row_to_json on postgres 9.1

我在本地开发人员环境中编写了以下查询,但没有意识到本地开发人员的postgres版本为9.3+,但在生产环境中仅为9.1。 我不愿意升级生产postgres。 有什么办法可以编写与9.1兼容的以下查询? 我相信row_to_json是问题。 是否有9.1的等效项? 模式是SalesOrders,其中有许多SalesOrderItems。 每个SalesOrderItem都有许多mdn。 下面的代码在9.3上运行时为我提供了一个不错的紧凑型嵌套JSON对象。

select row_to_json(t)   
  from (select s.*,         
    ( select array_to_json(array_agg(row_to_json(d)))         
      from ( select soi.* , (select array_to_json(array_agg(row_to_json(e))) 
         from( select m.* FROM "Mdns" m where m."SalesOrderItemId" = soi.id) e) mdns            
           from "SalesOrderItems" soi where soi."SalesOrderId" =s.id ) d               
            ) as order_items      
   from "SalesOrders" s       where s.order_id = 'SO-83562-0185') t

9.2的json函数向9.1的json91移植可以作为扩展名json91

但是,总的来说,与在生产环境中运行相比,使用较新版本的数据库进行开发是一个坏主意。 您将不断遇到这样的问题。

如果您想使用json功能,则需要计划升级到9.4。 PostgreSQL的json支持在每个发行版中都在不断提高。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM