小编Joe*_*cop的帖子

以逗号分隔的列表形式返回 jsonb_array_elements 结果

我正在访问一个jsonb字段中的数组(一个名为“choice_values”的 json 对象),并希望将其内容解析为逗号分隔的文本字段。

SELECT
    jsonb_array_elements(doc -> 'form_values' -> '8189' -> 'choice_values')
FROM
    field_data.exports;
Run Code Online (Sandbox Code Playgroud)

该 jsonb_array_elements 函数返回一个“文本集”,我想将其转换为包含在单个字段中的逗号分隔的数组值列表。

谢谢你。

postgresql json jsonb postgresql-9.5

6
推荐指数
1
解决办法
7811
查看次数

如何在PostgreSQL 9.2.1中避免循环触发调用

我有一张桌子:

CREATE TABLE field_data.soil_samples (
 pgid SERIAL NOT NULL,
 sample_id text,
 project_id text,
 utm_zone integer,
 utm_easting integer,
 utm_northing integer,
 wgs84_longitude double precision,
 wgs84_latitude double precision,
 yt_albers_geom geometry(Point,3578),
 CONSTRAINT soil_samples_pk PRIMARY KEY (pgid)
)
Run Code Online (Sandbox Code Playgroud)

PostGIS 2.0几何体yt_albers_geom是使用触发器创建的,该触发器针对此表触发INSERTS.如果要插入的记录满足以下条件之一,则会生成几何体:

  1. 两者wgs84_latitude和wgs84_longitude字段都不为空
  2. 每个的utm_zone,utm_easting和utm_northing不为空

现在,我对如何进行更新以实现以下目标感到困惑:

  1. 当更新是为了utm_zone,utm_easting或utm_northing,然后wgs_84_latitude,wgs84_longitude和yt_albers_geom被触发更新
  2. 当对wgs84_latitude或进行更新时,wgs84_longitude所有utm_字段都会更新,以及yt_albers_geom.
  3. 完成更新后yt_albers_geom,将更新所有坐标字段.

似乎这些触发器中的任何一个都会导致无限循环的触发器触发,对吗?

postgresql triggers postgis plpgsql

5
推荐指数
1
解决办法
1896
查看次数

标签 统计

postgresql ×2

json ×1

jsonb ×1

plpgsql ×1

postgis ×1

postgresql-9.5 ×1

triggers ×1