PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

PostgreSQL INSERT ON CONFLICT UPDATE (upsert) gunakan semua nilai yang dikecualikan

Postgres belum menerapkan yang setara dengan INSERT OR REPLACE . Dari ON CONFLICT dokumen (penekanan milik saya):

Ini bisa berupa klausa DO NOTHING, atau DO UPDATE yang menentukan detail persisnya tindakan UPDATE yang akan dilakukan jika terjadi konflik.

Meskipun tidak memberi Anda singkatan untuk penggantian, ON CONFLICT DO UPDATE berlaku lebih umum, karena memungkinkan Anda menetapkan nilai baru berdasarkan data yang sudah ada sebelumnya. Misalnya:

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. Rencana Kueri Postgres mengapa estimasi Baris sangat salah

  2. DATEADD setara di PostgreSQL

  3. Jalankan kueri PostgreSQL dari baris perintah

  4. Gabungan dalam &Gabungan Luar; apakah urutan tabel dari yang penting?

  5. Memberitahu Pengguna Anda untuk Melakukan Fork Sendiri