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

Nâng cấp trong Postgres bằng node.js

Câu trả lời ngay lập tức cho câu hỏi của bạn là sử dụng quy trình được lưu trữ để thực hiện nâng cấp.

http://www.postgresql .org / docs / current / static / plpgsql-control-architects.html # PLPGSQL-UPSERT-EXAMPLE

Một cái gì đó như thế này hoạt động tốt với mô-đun pg.

client.query({
  text: "SELECT upsert($1, $2, $3, $4, $5, $6)"
  values: [ obj.id, 
            obj.first_name,
            obj.last_name,
            1,
            ip,
            date_now.getFullYear() + "-" + month + "-" + date_now.getDate() + " " + date_now.getHours() + ":" + date_now.getMinutes() + ":" + date_now.getSeconds()
          ]
}, function(u_err, u_result){
  if(err) // this is a real error, handle it

  // otherwise your data is updated or inserted properly
});

Tất nhiên điều này giả định rằng bạn đang sử dụng một số loại đối tượng mô hình có tất cả các giá trị bạn cần, ngay cả khi chúng không thay đổi. Bạn phải vượt qua tất cả chúng để nâng cấp. Nếu bạn gặp khó khăn khi thực hiện theo cách bạn đã hiển thị ở đây, bạn có thể nên kiểm tra đối tượng lỗi thực tế sau khi cập nhật để xác định xem nó không thành công vì hàng đã ở đó hay vì một số lý do khác (đó là lỗi db thực sự cần được xử lý).

Sau đó, bạn phải đối phó với điều kiện cuộc đua tiềm năng giữa thời gian cập nhật của bạn không thành công và thời gian chèn của bạn đi qua. Nếu một số chức năng khác cố gắng chèn với cùng một id, bạn đã gặp sự cố. Giao dịch là tốt cho điều đó. Đó là tất cả những gì tôi có ngay bây giờ. Hy vọng nó sẽ hữu ích.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Rails &Postgres:Không thể truyền di chuyển sang change_colomn gây ra lỗi để nhập dấu thời gian không có múi giờ

  2. Xu hướng PostgreSQL:Nhà cung cấp đám mây phổ biến nhất, Ngôn ngữ, VACUUM, Chiến lược quản lý truy vấn &Loại triển khai trong Doanh nghiệp

  3. Rất nhiều truy vấn HIỂN THỊ MỨC ĐỘ ISOLATION GIAO DỊCH trong postgres

  4. Chuyển đổi dấu thời gian Unix thành dấu thời gian không có múi giờ

  5. Cách liệt kê tất cả cơ sở dữ liệu bằng PostgreSQL