Ver Mensaje Individual
  #4 (permalink)  
Antiguo 06/07/2009, 08:22
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años, 1 mes
Puntos: 2658
Respuesta: Insert Mysql con condicion

Bueno, para eso existe la posibilidad de usar el resultado de un SELECT en un INSERT:
Código sql:
Ver original
  1. INSERT INTO tabla1(a, b, c, d, e)
  2. SELECT f, g, h, i, j
  3. FROM tabla2
  4. WHERE f = x;
Esto se usa cuando el conjunto de datos proviene de otra tabla.
En tu caso, el problema es que deberías determinar que el campo que no se repite es el de la PK. En ese caso se usa un
Código sql:
Ver original
  1. INSERT IGNORE INTO tabla...
Este modelo no insertará los datos si y sólo si estás intentando ingresar una PK duplicada, pero no generará una salida por el error de clave duplicada que eventualmente se produciría.
Para poder hacer una inserción con una comparación por campo no clave, te conviene hacerlo mediante una tabla temporal donde recojas los registros válidos antes de insertarlos.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)