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

Cập nhật khóa lồng nhau với trường json postgres trong Rails

Không có chức năng thay thế phím json, vì vậy bạn nên xóa đối tượng cũ và thêm đối tượng mới:

update moves 
set data = jsonb_set(
    data::jsonb,
    array['boxes'],
    (data->'boxes')::jsonb - 'book' || jsonb_build_object('book_new', data->'boxes'->'book')
    )
where data ->> 'boxes' like '%book%'
returning *;

                         data                         
------------------------------------------------------
 {"boxes": {"moving": 2, "book_new": 2}, "goods": {}}
(1 row)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. psycopg2 tương đương với mysqldb.escape_string?

  2. Trình tự ngủ đông không được tạo

  3. PostgreSQL, Tổng hợp tùy chỉnh

  4. Làm cách nào để thay đổi database_url trên heroku?

  5. Câu lệnh SQL để xóa chỉ một hàng trong số các bản sao