sql >> Databáze >  >> RDS >> PostgreSQL

Aktualizujte hodnotu klíče v poli objektů jsonb

Můžete to udělat pomocí kombinace jsonb funkce a operátory :

UPDATE company c
SET    log = sub.log2
FROM  (
   SELECT *
   FROM   company c
   CROSS  JOIN LATERAL (
      SELECT jsonb_agg(jsonb_set(l, '{oldvalue}', to_jsonb(rtrim(l->>'oldvalue')))) AS log2
      FROM   jsonb_array_elements(c.log) l
      ) sub
   WHERE  jsonb_typeof(log) = 'array'  -- exclude NULL and non-arrays
   ) sub
WHERE  c.code =  sub.code   -- assuming code is unique
AND    c.log  <> sub.log2;  -- only where column actually changed.

SQL Fiddle.



  1. Sdílejte připojení k postgres db napříč procesy v Pythonu

  2. kdy se odpojit a kdy ukončit pg klienta nebo fond

  3. Vytvoření tabulky pomocí vb.net, mysql

  4. Oracle PL/SQL:Příklad DBMS_SCHEDULER.CREATE_JOB