Contenido tambien disponible en Gemini en gemini://alex.corcoles.net/2011/12/upserts/. Información sobre Gemini.
Trabajando en un pequeño experimento[1], se me ha ocurrido un insert idempotente:
insert into foo (bar) (select 'bar_value' as bar where not exists (select 1 from foo where bar = 'bar_value'));
(la sintaxis es de PostgreSQL, pero supongo que es adaptable a otras bases de datos). Igual intento adaptarlo a hacer upserts.
1: https://github.com/alexpdp7/tvguide
envíame un email cogiendo el dominio de esta web y cambiando el primer punto por una arroba