Postgres no ha implementado un equivalente a INSERT OR REPLACE
. Del ON CONFLICT
documentos (énfasis mío):
Puede ser NO HACER NADA o una cláusula HACER ACTUALIZAR que especifique los detalles exactos. de la acción UPDATE a realizar en caso de conflicto.
Aunque no le proporciona una abreviatura para reemplazar, ON CONFLICT DO UPDATE
se aplica de manera más general, ya que le permite establecer nuevos valores basados en datos preexistentes. Por ejemplo:
INSERT INTO users (id, level)
VALUES (1, 0)
ON CONFLICT (id) DO UPDATE
SET level = users.level + 1;