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

Cập nhật nhiều hàng PostgreSQL trong Node.js

Ví dụ dưới đây dựa trên thư viện pg-promise và phương thức helpers.update:

// library initialization, usually placed in its own module:
const pgp = require('pg-promise')({
    capSQL: true // capitalize all generated SQL
});

const db = pgp(/*your connection details*/);

// records to be updated:
const updateData = [
    {id: 1, value: 1234},
    {id: 2, value: 5678},
    {id: 3, value: 91011}
];

// declare your ColumnSet once, and then reuse it:
const cs = new pgp.helpers.ColumnSet(['?id', 'value'], {table: 'fit_ratios'});

// generating the update query where it is needed:
const update = pgp.helpers.update(updateData, cs) + ' WHERE v.id = t.id';
//=> UPDATE "fit_ratios" AS t SET "value"=v."value"
//   FROM (VALUES(1,1234),(2,5678),(3,91011))
//   AS v("id","value") WHERE v.id = t.id

// executing the query:
await db.none(update);

Phương pháp tạo cập nhật nhiều hàng này có thể được mô tả như sau:

  • rất nhanh, vì nó dựa trên loại ColumnSet triển khai bộ nhớ đệm thông minh để tạo truy vấn
  • hoàn toàn an toàn, vì tất cả các loại dữ liệu đều đi qua công cụ định dạng truy vấn của thư viện để đảm bảo mọi thứ đều được định dạng và thoát đúng cách.
  • rất linh hoạt, do cú pháp ColumnConfig nâng cao được hỗ trợ cho định nghĩa cột.
  • rất dễ sử dụng, do giao diện đơn giản được triển khai bởi pg-promise.

Lưu ý rằng chúng tôi sử dụng ? phía trước cột id để chỉ ra rằng cột là một phần của điều kiện, nhưng không được cập nhật. Để biết cú pháp cột hoàn chỉnh, hãy xem cấu trúc lớp Column và ColumnConfig.

Câu hỏi liên quan:Chèn nhiều hàng với pg-promise.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Postgres tương tự như ÁP DỤNG CHÉO trong SQL Server

  2. Làm cách nào để ngăn Postgres nội dòng một truy vấn con?

  3. Cách giảm thiểu RPO cho cơ sở dữ liệu PostgreSQL của bạn bằng cách sử dụng phục hồi tại thời điểm

  4. Truy vấn một tham số (cài đặt postgresql.conf) như max_connections

  5. PostgreSQL:Cấp tất cả các quyền cho người dùng trên cơ sở dữ liệu PostgreSQL