Postgres hat kein Äquivalent zu INSERT OR REPLACE
implementiert . Aus dem ON CONFLICT
docs (Hervorhebung von mir):
Es kann entweder DO NOTHING oder eine DO UPDATE-Klausel sein, die die genauen Details angibt der im Konfliktfall durchzuführenden UPDATE-Aktion.
Obwohl es Ihnen keine Abkürzung zum Ersetzen gibt, ON CONFLICT DO UPDATE
gilt allgemeiner, da Sie neue Werte basierend auf bereits vorhandenen Daten festlegen können. Zum Beispiel:
INSERT INTO users (id, level)
VALUES (1, 0)
ON CONFLICT (id) DO UPDATE
SET level = users.level + 1;