Articles of upsert

SQLite “INSERT O REPLACE INTO” contra “UPDATE … WHERE”

Nunca he visto la syntax INSERT OR REPLACE INTO names (id, name) VALUES (1, “John”) utilizados en SQL anteriormente, y me preguntaba por qué es mejor que los UPDATE names SET name = “John” WHERE id = 1 . ¿Hay alguna buena razón para usar una sobre la otra? ¿Es esta syntax específica para SQLite?

SQLite UPSERT / UPDATE O INSERT

Necesito realizar UPSERT / INSERT O UPDATE contra una base de datos SQLite. Existe el comando INSERT O REPLACE que en muchos casos puede ser útil. Pero si desea mantener sus identificaciones con autoincrement debido a claves externas, no funciona, ya que elimina la fila, crea una nueva y, por consiguiente, esta nueva fila tiene […]

syntax para una sola fila MERGE / upsert en SQL Server

Estoy tratando de hacer una inserción / actualización de una sola fila en una tabla, pero todos los ejemplos que hay son para conjuntos. ¿Alguien puede arreglar mi syntax por favor? MERGE member_topic ON mt_member = 0 AND mt_topic = 110 WHEN MATCHED THEN UPDATE SET mt_notes = ‘test’ WHEN NOT MATCHED THEN INSERT (mt_member, […]

¿Cómo averiguar si un upsert era una actualización con PostgreSQL 9.5+ UPSERT?

Los CTE escribibles se consideraron una solución para UPSERT antes de 9.5 como se describe en Insertar, en la actualización duplicada en PostgreSQL? Es posible realizar un UPSERT con la información si terminó como una ACTUALIZACIÓN o un INSERT con el siguiente modificador CTE adaptable: WITH update_cte AS ( UPDATE t SET v = $1 […]

UPSERT atómico en SQL Server 2005

¿Cuál es el patrón correcto para realizar un “UPSERT” atómico (ACTUALIZAR si existe, INSERTAR de otro modo) en SQL Server 2005? Veo una gran cantidad de código en SO (por ejemplo, consulte Comprobar si existe una fila, de lo contrario inserte ) con el siguiente patrón de dos partes: UPDATE … FROM … WHERE — […]

Cómo realizar un UPSERT para poder usar valores nuevos y antiguos en la parte de actualización

Ejemplo estúpido pero simple: Supongamos que tengo una tabla ‘Artículo’ donde guardo los totales de los artículos que reciben. Item_Name Items_In_Stock El nombre del elemento es la clave principal aquí. Cómo logro lo siguiente cuando recibo el artículo A en cantidad X. Si el artículo no existe, inserto un nuevo recodificado para el artículo A […]

MongoDB: subeporte de sub-documento

Tengo documentos que se parecen a eso, con un índice único en bars.name : { name: ‘foo’, bars: [ { name: ‘qux’, somefield: 1 } ] } . Quiero actualizar el { name: ‘foo’, ‘bars.name’: ‘qux’ } donde { name: ‘foo’, ‘bars.name’: ‘qux’ } y $set: { ‘bars.$.somefield’: 2 } , o crear un nuevo […]

¿Cómo UPSERT (FUSIÓN, INSERTAR … EN ACTUALIZACIÓN DUPLICADA) en PostgreSQL?

Una pregunta muy frecuente aquí es cómo hacer un upsert, que es lo que MySQL llama INSERT … ON DUPLICATE UPDATE y los soportes estándar como parte de la operación MERGE . Dado que PostgreSQL no lo admite directamente (antes de la página 9.5), ¿cómo lo hace? Considera lo siguiente: CREATE TABLE testtable ( id […]