Ver Mensaje Individual
  #2 (permalink)  
Antiguo 17/05/2009, 19:31
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: 16 años, 5 meses
Puntos: 2658
Respuesta: problema con .NET contra MySQL

El problema es más básico y menos complicado de lo que parece: Si te da problemas de FK significa que estás haciendo una de estas cosas mal:
1. Estás intentando poner NULL en un campo definido como FK. Eso no se puede hacer (violación de consistencia de datos).
2. Estás intentando ingresar un valor de FK que no existe en la tabla origen (violación de restricción integridad referencial).
3. Estás intentando ingresar un dato en la tabla secundaria antes de ingresar el valor en la tabla primaria (mismo problema anterior).

En cualquier caso, no es un problema de "consultas en bloque" (sea lo que sea que quieres decir con eso, que no es un concepto de BB.DD.), sino de mal algoritmo de procesos y de conceptos: Cuando declaras una FK no significa que el DBMS va a ingresar en la tabla primaria el valor antes de insertar la tabla secundaria. Significa que va a vigilar que no metas un valor ilegal... que es lo que estás haciendo.
Replantea la secuencia y genera las validaciones ANTES de ingresar los datos en la base.

P.D.: Si hubieses hecho esto contra Oracle o contra DB2 o MSSSQL Server, el resultado sería el mismo, porque las restricciones de las tablas relacionales son también las mismas.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 17/05/2009 a las 19:37