que realiza una inserción de la siguiente manera:ignorar inserción de filas que infringen índice de clave duplicada
INSERT INTO foo (a,b,c)
SELECT x,y,z
FROM fubar
WHERE ...
Sin embargo, si algunas de las filas que se están insertando violan el índice de clave duplicada en foo, quiero que la base de datos para ignore esas filas, y no las inserte y continúe insertando las otras filas.
El DB en cuestión es Informix 11.5. Actualmente todo lo que sucede es que el DB está lanzando una excepción. Si trato de manejar la excepción con:
ON EXCEPTION IN (-239)
END EXCEPTION WITH RESUME;
... no ayuda porque después se detecta la excepción, todo el inserto se salta.
No creo que informix admita INSERT IGNORE, o INSERTAR ... EN LLAVE DUPLICADA ..., pero puede corregirme si me equivoco.
¿Soporta Informix uniones a la izquierda? Si es así, simplemente no puede consultar las filas que ya están en foo. –
Informix es compatible con LEFT JOIN. También (IDS 11.50) es compatible con MERGE, que se puede utilizar para INSERTAR filas nuevas o ACTUALIZAR filas existentes. –
¿Me estoy perdiendo algo aquí? ¿Por qué el índice es único? Me parece que esta pregunta debe cambiarse a "¿Cómo creo un índice no único en Informix?" –