MySQL - eliminar registros de una tabla padre.

 
Vista:
Imágen de perfil de Hfr
Val: 26
Ha disminuido su posición en 5 puestos en MySQL (en relación al último mes)
Gráfica de MySQL

eliminar registros de una tabla padre.

Publicado por Hfr (21 intervenciones) el 24/06/2016 00:09:05
Hola chicos,
tengo un tabla papa en mysql
y tengo muchas tablas hijas,
las demas tablas estan relacionadas a la tabla principal con un id bigint,
las tablas
hijas tienen dos llaves primarias una big int y la otra un consecutivo auto incrementa ble ya que se requiere que el id vuelva a pasar por esa tabla en momentos diferentes al primero.

todas esas tablas están relacionadas
en donde la la referencia se sitúa en la tabla papa y y la foránea en las otras tablas.


resulta que cada 2 mese se debe vaciar la tabla papa y cargarle datos desde un archivo excel.

cuando se decidió implementar el modelo entidad relación en la tabla surgió el inconveniente,
las otras tablas ya tiene registros ligados con los id' de las relaciones.
obviamente al eliminarlos pues genera conflictos ya que dice que no se pueden eliminar porque las demás tablas tienen registros con esos id's.

no se que consejo me pueden dar para este caso.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

eliminar registros de una tabla padre.

Publicado por DAVID (63 intervenciones) el 24/06/2016 09:35:11
Hola,
Tienes que hacer un delete cascade. Es decir, que cuando borres registros en la tabla padre, te borre los registros en las tablas hijas. Pero eso se hace automaticamente, es transpararente para ti, que además es lo que buscas, no?


Un saludo,
David
soluciones web
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Hfr
Val: 26
Ha disminuido su posición en 5 puestos en MySQL (en relación al último mes)
Gráfica de MySQL

eliminar registros de una tabla padre.

Publicado por Hfr (21 intervenciones) el 24/06/2016 15:00:14
no de echo es lo contrario.
la integridad de los registros de las tablas hijas deben de quedar intactas.
la de al tabla padre deben eliminarse, cargarse nuevamente con un archivo plato de txt, sin tocar los registros en las otras tablas.
y esto se hace porque son datos que arroja otra aplicación, pero por algún motivo no permitieron hacer un replica de esta tabla ni tampoco permitieron una conexión directa con esa base de datos .
solo me dieron un excel con los id que se adicionan a la tabla padre, ese archivo me lo envían una vez al mes. entonces con la base de datos que funciona en producción solo hacia un delete , y eliminaba los registros y los volvía a cargar sin problema ya que por cuestiones de tiempo y presión para la entrega no se implemento un correcto modelo de entidad relación, y ahora que quieren que se implemente pues tengo el problema.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

eliminar registros de una tabla padre.

Publicado por DAVID (63 intervenciones) el 24/06/2016 15:06:07
Debes dejar los registros de las hijas sin los datos de la del padres?? Es decir, no quieres mantener la integridad? Entonces tendrás que hacer on delete no action, no? pero no veo para que te puede servir, la verdad.
Estas son las opciones de ON delete:
RESTRICT | CASCADE | SET NULL | NO ACTION
Un saludo
David
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Hfr
Val: 26
Ha disminuido su posición en 5 puestos en MySQL (en relación al último mes)
Gráfica de MySQL

eliminar registros de una tabla padre.

Publicado por Hfr (21 intervenciones) el 24/06/2016 15:22:34
con el no action puedo borrar los registros de las tablas hijas en caso de ser necesario.
a menos de que al hacer el cargue masivo se le pudiera decir que solo agregara los registros que son diferentes a los existen en la tabla padre y no habirar la nesesidad de hacer un delete completo de la tabla cada mes.
eso lo hago asi.

load DATA INFILE "c:/datosxls.txt" into TABLE my _tablapadre CHARACTER SET latin1.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

eliminar registros de una tabla padre.

Publicado por J. Carlos UTTT (3 intervenciones) el 11/07/2016 07:02:48
Hola que tal mira lo que te recomiendo que debes de antes de eliminar a tu registro padre, primero
debes de realizar es una consulta para verificar si tiene hijos.

1. Consulta el ID a eliminar.
2. Con el ID debes de consultar si ese ID tiene hijos
3. Realizar consulta y si tiene hijos devolver un true y proceder a eliminar y si no simplemente elimina ese ID

Saludossssssssssssssssss
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Hfr
Val: 26
Ha disminuido su posición en 5 puestos en MySQL (en relación al último mes)
Gráfica de MySQL

eliminar registros de una tabla padre.

Publicado por Hfr (21 intervenciones) el 11/07/2016 21:28:47
Pues,en ultimas lo que hice fue, omitir las restricciones de las fk con
SET FOREIGN_KEY_CHECKS=0;
antes de hacer el delete

y luego si le hice el cargue masivo, con load data, jejeje.

de todas formas gracias a todos por sus comentarios

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar