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

PostgreSQL INSERT ON CONFLICT UPDATE (upert) sử dụng tất cả các giá trị bị loại trừ

Postgres chưa triển khai tương đương với INSERT OR REPLACE . Từ ON CONFLICT tài liệu (tôi nhấn mạnh):

Nó có thể là KHÔNG GÌ hoặc mệnh đề DO CẬP NHẬT xác định chi tiết chính xác của hành động CẬP NHẬT sẽ được thực hiện trong trường hợp có xung đột.

Mặc dù nó không cung cấp cho bạn cách viết tắt để thay thế, ON CONFLICT DO UPDATE áp dụng chung hơn, vì nó cho phép bạn đặt các giá trị mới dựa trên dữ liệu đã có từ trước. Ví dụ:

INSERT INTO users (id, level)
VALUES (1, 0)
ON CONFLICT (id) DO UPDATE
SET level = users.level + 1;



  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ách cấp tất cả các đặc quyền về chế độ xem cho người dùng tùy ý

  2. Làm cách nào để thay đổi vị trí của một cột trong bảng cơ sở dữ liệu PostgreSQL?

  3. Quản lý một Bản cam kết PostgreSQL

  4. Bảng lừa cấu hình PostgreSQL

  5. 3 cách liệt kê tất cả các kích hoạt cho một bảng đã cho trong PostgreSQL