none
eliminar registro de varias tablas RRS feed

  • Pregunta

  • buenas a todos necesito una ayuda y gracias por la ayuda,

    mi problema es que como puedo eliminar un registro de una tabla si esta misma tabla comparte id con otras dos tablas diferentes?

    ya que necesito borrar con un delete un registro y este registro comparte el id con otra tabla y una tercera mas, hay ocaciones que la tabla principal por asi decir activos tiene registro con el id en otra tabla detalles y en otros casos no y asi mismo con la tercera tabla que este son archivos.

    Activos se relaciona con Detalles

    activos  se relaciona con archivos

    y con un delete en acivos borrar los registros existentes en la otras dos tablas 

    gracias y saludos 


    keneth

    jueves, 11 de febrero de 2016 22:59

Respuestas

  • Hola ekeneth,

    Las relaciones que has establecido al diseñar tus tablas permiten guardar reglas de integridad, salvaguardando que no queden registros dependientes sin referencias, es por esa razón que no puedes borrar un registro si el mismo tiene dependencias en otras tablas, entonces la lógica dicta que primero hay que borrar las dependencias para finalmente borrar la tabla de las que dependen.

    En caso las relaciones entre ambas tablas sean de dependencia directa podrías definir una regla en la que la eliminación vaya en cascada, es decir, que al eliminar un registro se eliminen automáticamente los registros dependientes.

    DELETE FROM Detalles WHERE (ID_Activo = 10);
    DELETE FROM Archivos WHERE (ID_Activo = 10);
    DELETE FROM Activos WHERE (id = 10);

    • Marcado como respuesta ekeneth viernes, 12 de febrero de 2016 15:33
    jueves, 11 de febrero de 2016 23:09

Todas las respuestas

  • Hola ekeneth,

    Las relaciones que has establecido al diseñar tus tablas permiten guardar reglas de integridad, salvaguardando que no queden registros dependientes sin referencias, es por esa razón que no puedes borrar un registro si el mismo tiene dependencias en otras tablas, entonces la lógica dicta que primero hay que borrar las dependencias para finalmente borrar la tabla de las que dependen.

    En caso las relaciones entre ambas tablas sean de dependencia directa podrías definir una regla en la que la eliminación vaya en cascada, es decir, que al eliminar un registro se eliminen automáticamente los registros dependientes.

    DELETE FROM Detalles WHERE (ID_Activo = 10);
    DELETE FROM Archivos WHERE (ID_Activo = 10);
    DELETE FROM Activos WHERE (id = 10);

    • Marcado como respuesta ekeneth viernes, 12 de febrero de 2016 15:33
    jueves, 11 de febrero de 2016 23:09
  • muchas gracias Williams Morales me a funcionado te lo agradesco gran aporte gracias

    saludos


    keneth

    viernes, 12 de febrero de 2016 15:33