Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/01/2015, 08:57
slikp
 
Fecha de Ingreso: marzo-2013
Mensajes: 32
Antigüedad: 11 años, 1 mes
Puntos: 0
FK - Problema al tratar de eliminar registro.

- Buenas a tod@s, creo que mi inquietud va en esta seccion del foro si no es asi disculpen, bueno en mi clase de programacion web me han asignado crear un CRUD con una BD ya previamente estructurada por el Profesor, ya cree en si todo lo que seria las vista para el usuario (el modulo en el cual el usuario ve la información de la BD, en otras palabras los Select) y bueno decidi seguir con el DELETE, ahora bien yo lo ejecuto de la siguiente forma:

Código MySQL:
Ver original
  1. DELETE FROM tubicacion WHERE DescripUbic='".$keyero."' AND CodEstacion='".$keyer."' AND CodRegion='".$keye."' AND CodUbic='".$key."

- Y esa sentencia me funciona perfecto, pero al trata de ejecutar esta otra:

Código MySQL:
Ver original
  1. DELETE FROM testaciones WHERE DescripEstacion='".$keyero."' AND CodEstacion='".$key."' AND CodRegion='".$keyer."'


Cita:
Editado: Código de programación no permitido en foros de Base de Datos. Leer las reglas del foro, por favor.
- Pues no sucede absolutamente nada, al imprimir un var_dump de esa sentencia me devuelve lo siguiente: string(99) "DELETE FROM testaciones WHERE DescripEstacion='BAMARIS' AND CodEstacion='AM10' AND CodRegion='REAM'"

- Compruebo campo por campo a punta de ojo en la BD y no veo nada raro entonces intente aplicar la sentencia directamente desde el Phpmyadmin en la parte donde dice SQL ejecute:

Código SQL:
Ver original
  1. DELETE FROM testaciones WHERE DescripEstacion='BAMARIS' AND CodEstacion='AM10' AND CodRegion='REAM'

- Y me da el siguiente error: #1451 - Cannot delete or update a parent row: a foreign key constraint fails (`mttoaero`.`tequiposseriales`, CONSTRAINT `FK_TEquiposSeriales_TUbicacion` FOREIGN KEY (`CodRegion`, `CodEstacion`, `CodUbic`) REFERENCES `tubicacion` (`CodRegion`, `CodEstacion`, `CodUbic`) O).

- Investigando un poco pues creo que la razon del error se debe a una restricción de clave foranea dado que la PK tabla donde estoy tratando de hacer la operación DELETE está siendo usada en otra tabla como FK, y lo que estoy intentando hacer está afectando una PK que está en un registro de la segunda tabla y eso produce una violación de integridad referencial. Menudo problema para MI ya que por poco repruebo BD así que no se como resolver este problema.

- Sin embargo creo que a mi entender tengo que no solo eliminar el registro de testaciones si no tambien en tequiposseriales y tubicacion donde las FK esten afectando.

-Ok, ahora pregunto, ¿ Si es correcto lo que pienso como es posible realizar ese DELETE?, porque en mi ignorancia intente hacer esto:

Código SQL:
Ver original
  1. DELETE FROM testaciones, tequiposseriales, tubicacion WHERE AND CodEstacion='AM10' AND CodRegion='REAM'

- Y no resulto, o la solucion es otra??. Saludos...

Última edición por gnzsoloyo; 21/01/2015 a las 09:27