Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Omitir errores FK

Estas en el tema de Omitir errores FK en el foro de Mysql en Foros del Web. Buenas, estoy importando unos scripts de carga de datos con el comando source de Mysql. El tema es que cuando encuentra un error de claves ...
  #1 (permalink)  
Antiguo 11/12/2012, 07:17
Avatar de ramiro_md  
Fecha de Ingreso: septiembre-2008
Mensajes: 274
Antigüedad: 15 años, 8 meses
Puntos: 26
Omitir errores FK

Buenas, estoy importando unos scripts de carga de datos con el comando source de Mysql.
El tema es que cuando encuentra un error de claves foráneas me omite la carga de todo lo que reste del script.
Existe la manera de que, informe el error, pero continué la carga ?.
Saludos y desde ya muchas gracias.
  #2 (permalink)  
Antiguo 11/12/2012, 07:29
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Omitir errores FK

Puedes modificar los comandos INSERT de tu archivo usando INSERT IGNORE INTO:
Véase: http://dev.mysql.com/doc/refman/5.0/es/insert.html

De esa manera los errores a la hora de insertar se convierten en advertencias.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 11/12/2012, 07:43
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Omitir errores FK

Lo que no se puede permitir, si eso es lo que preguntas, es que el registro que viola la integridad referencial se inserte. Romper esa integridad referencial sólo traería catástrofes.
¿Eso lo tienes claro?
Por eso David te sugiere que ese registro se ignore en caso de error.
Lo que no debes olvidar es que si de ese INSERT dependen otros más, esos otros tampoco podrán realizarse, a causa de la cadena de dependencias de integridad referencial.
Si supones que debería insertarse, verifica que no hayas construido incorrectamente las dependencias entre las tablas.
No es rara la ocasión en que se crean dependencias circulares, o se definen INSERTs que no respetan la cadena de dependencias.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 11/12/2012, 07:52
Avatar de ramiro_md  
Fecha de Ingreso: septiembre-2008
Mensajes: 274
Antigüedad: 15 años, 8 meses
Puntos: 26
Respuesta: Omitir errores FK

Cita:
Iniciado por David Ver Mensaje
Puedes modificar los comandos INSERT de tu archivo usando INSERT IGNORE INTO:
Véase: http://dev.mysql.com/doc/refman/5.0/es/insert.html

De esa manera los errores a la hora de insertar se convierten en advertencias.
Agregué IGNORE, pero sigue saltando el error #1452, uso la versión 5.5, alguna idea ?.-
  #5 (permalink)  
Antiguo 11/12/2012, 08:24
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Omitir errores FK

¿Verificaste la cadena de dependencias?
¿Te aseguraste de no crear dependencias circulares?
¿verificaste la consistencia de los datos que insertas?

Postea la estructura de las tablas involucradas (los CREATE TABLE, no una descripción), y un ejemplo del insert que falla.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: errores, omitir, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:32.