Informática en general > Dudas informáticas
Eliminacion Logica De Tuplas
lencho:
Muchas gracias por la idea.
Pero..., siendo de esta forma (en el mejor de los casos, solo revisar una relacion)
<!--sql--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>SQL </td></tr><tr><td id='CODE'><!--sql1-->[color=blue;font-weight]UPDATE[/color] paises SET eliminado='S' WHERE not exists ([color=blue;font-weight]select[/color] 1 from usuarios u where u.idPais=p.idPais ) and idPais=@pais ;
<!--sql2--></td></tr></table><div class='postcolor'><!--sql3-->
Y si ademas de Persona, la tabla Pais, se relaciona con Departamento, Continente, Planeta (POR DECIR !!)
Tendria que hacer..
<!--sql--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>SQL </td></tr><tr><td id='CODE'><!--sql1-->[color=blue;font-weight]UPDATE[/color] paises
SET eliminado='S'
WHERE idPais=@pais and not exists ([color=blue;font-weight]select[/color] 1 from usuarios u where u.idPais=p.idPais ) and not exists ([color=blue;font-weight]select[/color] 1 from Departamento d where d.idPais=p.idPais ) and not exists ([color=blue;font-weight]select[/color] 1 from Continente c where c.idPais=p.idPais ) and not exists ([color=blue;font-weight]select[/color] 1 from Planeta pl where pl.idPais=p.idPais )
<!--sql2--></td></tr></table><div class='postcolor'><!--sql3-->
Por lo tanto cada vez que aumente una llave foranea a esta tabla pais, tendria que aumentar UN AND MAS el trigger anterior.
Y yo pense si no existe alguna funcion, que me puedad ayudar a obtener las llaves que tiene una determinada tabla y asi poder hacerlo automatico.
Gracias.
BYTE.
F_Tanori:
Ok, no habia entendido que se extenderian las relaciones :P
pues como dice JuanK pudieras revisar las tablas del sistema con un query apropiada sacar las relaciones....
Otra opcion seria utilizar transacciones :rolleyes: eliminando el registro y comprobando si se elimina tomando las filas afectadas o el error (claro utilizando integridad referencial como ya se comento) para saber es posible eliminar dicho registro
despues de hacer esa comprobacion ejecutar el Rollback, y hacer el UPDATE para la eliminacion LOGICA
No se que tan fuera de mis casillas este con esa idea :P pero es una opcion
Saludos
JuanK:
--- Cita de: "F_Tanori" --- No se que tan fuera de mis casillas este con esa idea :P pero es una opcion
--- Fin de la cita ---
podria ser buena salvo en el caso que se eliminaron bastantes registros,por demas decir que hay un esfuerzo transaccional amplio o pbueno puee que no mucho :S
Saludos.
lencho:
Ajaaaa.
Me parece muy wena la idea.
Tratare de aplicarla.
Muchas gracias.
BYTE.
Navegación
[*] Página Anterior
Ir a la versión completa