MySQL - [Problema]Delete en varias tablas

   
Vista:

[Problema]Delete en varias tablas

Publicado por David (11 intervenciones) el 03/06/2015 21:49:00
Tengo un problema con este procedimiento el cual solo me borra datos de una tabla pero deja intactas las otras dos,creo que es un problema de sintaxis espero puedan ayudarme en esto,aquí está la sentencia:

1
2
3
4
5
6
7
8
9
10
11
PROCEDURE `PruebaEliminar`(in Rec longtext,in Id_Est integer(2),in Obs longtext,in Id_As integer(2),in Id_Emp integer(2),in Id_Dp integer (2),in Id_Re integer(2),Id_usu integer(2),Id_adj integer(2),in operacion varchar(1))
BEGIN
if operacion='U' then
update reclamos set Reclamo=Rec,Id_Est=Id_Est,Obs=Obs,Id_Dpto=Id_Dp,Id_Emp=id_Emp,Id_As=Id_As where Id_Reclamo=Id_Re;
end if;
if operacion='D' then
DELETE from reclamo WHERE id_reclamo=id_re;
Delete from usuarios where id_usuario=Id_usu;
Delete from adjuntos where id_adjunto=id_adj;
end if;
end
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

[Problema]Delete en varias tablas

Publicado por leonardo_josue (81 intervenciones) el 05/06/2015 20:53:48
Hola David:

El problema no parece estar en el procedimiento, sintácticamente no tienes ningún error, sin embargo, si hay algunos detalles que tienes que cuidad.

1. Verifica que los parámetros efectivamente lleguen con un valor, y que ese valor exista en las tablas... es decir, si colocas un delete con un filtro que no se cumple entonces simplemente NO SE ELIMINA NADA...

2. Si tus tablas están enlazadas, es decir, tienes relaciones de FK, debes tener cuidado en el orden en que realizas las eliminaciones, ya que si no activaste una eliminación en cascada, DEBERÁS ELIMINAR PRIMERO LAS TABLAS RELACIONADAS... el caso típico es con las FACTURAS-DETALLES... no puedes eliminar una factura si tiene detalles asociados, por lo tanto PRIMERO TIENES QUE ELIMINAR TODOS LOS DETALLES y después eliminas la factura.

En otras palabras, el orden de las eliminaciones SI AFECTA A TU PROCESO.

haz la prueba y nos comentas
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