PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Cách đẩy một đối tượng JSON vào một mảng lồng nhau trong một cột JSONB

Thủ thuật để jsonb_set() là nó sửa đổi một phần của jsonb đối tượng, nhưng nó trả về toàn bộ đối tượng. Vì vậy, bạn chuyển nó giá trị hiện tại của cột và đường dẫn bạn muốn sửa đổi ("trang" ở đây, dưới dạng một mảng chuỗi), sau đó bạn lấy mảng hiện có (my_column->'pages' ) và thêm || đối tượng mới của nó. Tất cả các phần khác của jsonb vật thể vẫn như cũ. Bạn đang chỉ định một cách hiệu quả một đối tượng hoàn toàn mới cho cột nhưng điều đó không liên quan vì UPDATE vẫn ghi một hàng mới vào bảng vật lý.

UPDATE my_table
SET my_column = jsonb_set(my_column, '{pages}', my_column->'pages' || new_json, true);

create_missing tùy chọn tham số được đặt thành true ở đây thêm đối tượng "trang" nếu nó chưa tồn tại.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cần tìm gì nếu Bản sao PostgreSQL của bạn đang bị trễ

  2. Kết hợp PostgreSQL không lặp lại

  3. Sử dụng mã hóa để tăng cường bảo mật cơ sở dữ liệu PostgreSQL

  4. Trích xuất ngày trong tuần, mili giây, micro giây, nano giây từ một ngày trong Postgres

  5. Rails:Lỗi khi cài đặt pg gem