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;