Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

223
Vistas
¿Cómo evitar actualizaciones innecesarias cuando se usa en conflicto con Postgres?

Mi caso de uso implica sincronizar una tabla con una fuente ascendente en un horario recurrente.

Cada fila tiene un identificador único y otras columnas, y quiero asegurarme de que estoy insertando filas ascendentes nuevas y actualizando las filas ascendentes modificadas. Y podría haber miles de filas para sincronizar.

Pero me gustaría evitar actualizaciones innecesarias donde la fila en la base de datos no difiere de lo que está aguas arriba.

Actualmente estoy usando ON CONFLICT UPDATE así:

 INSERT INTO symbols (id, name, status) VALUES (1, 'one', 'online'), (2, 'two', 'offline'), ... ON CONFLICT (id) UPDATE SET (id, name, status) = (excluded.id, excluded.name, excluded.status) RETURNING *

Pero esto escribirá las actualizaciones incluso cuando nada cambie. ¿Cómo debo modificar la UPDATE para verificar y aplicar de manera eficaz a las filas que lo necesitan?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Puede agregar una cláusula where para actualizar solo aquellas filas que son diferentes.

 INSERT INTO symbols (id, name, status) VALUES (1, 'one', 'online'), (2, 'two', 'offline'), ... ON CONFLICT (id) DO UPDATE SET (id, name, status) = (excluded.id, excluded.name, excluded.status) WHERE (symbols.id, symbols.name, symbols.status) IS DISTINCT FROM (excluded.id, excluded.name, excluded.status) RETURNING *

Sin embargo, esto solo devolverá las filas que realmente están actualizadas, lo que puede afectar la forma en que usa la cláusula de devolución.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda