MySQL - Error en trigger de phpmyadmi - Crear dos triggers uno inserta y el otro elimina

 
Vista:

Error en trigger de phpmyadmi - Crear dos triggers uno inserta y el otro elimina

Publicado por n (1 intervención) el 16/11/2021 19:09:47
hola gente, tengo un error, mi intención es crear un trigger que inserta en una tabla historial y luego de insertar que elimine el registro en la tabla anterior.
muestro los dos triggers.
1)
INSERT INTO historico_sol_solicitud_integrante (Id_Solicitud, Nro_Integrante, Apellido, Nombre, Id_Tipo_Doc, Nro_Documento, Nacimiento, Domicilio, Telefono, Haber_Jubilatorio, Id_Act_Cond, Id_Parentesco, Condicion, id_tipo_discapacidad, comentarios, id_reduccion_tarifa, ingresos, hijo_de, multiple_reserva, fecha_historico)
select Id_Solicitud, Nro_Integrante, Apellido, Nombre, Id_Tipo_Doc, Nro_Documento, Nacimiento, Domicilio, Telefono, Haber_Jubilatorio, Id_Act_Cond, Id_Parentesco, Condicion, id_tipo_discapacidad, comentarios, id_reduccion_tarifa, ingresos, hijo_de, multiple_reserva, NOW() from sol_solicitud_integrante WHERE Id_Solicitud = NEW.Id_Solicitud and Nro_Integrante = NEW.Id_Integrante

2)
BEGIN
IF NEW.Nro_Integrante= (SELECT MAX(Nro_Integrante)
FROM sol_solicitud_integrante
WHERE Id_Solicitud=NEW.ID_SOLICITUD)
THEN
DELETE FROM sol_solicitud_integrante
WHERE Id_Solicitud=NEW.ID_SOLICITUD
AND Nro_Integrante= NEW.Nro_Integrante;
DELETE FROM sol_solicitud WHERE Id_Solicitud=NEW.ID_SOLICITUD;
ELSE
DELETE FROM sol_solicitud_integrante
WHERE Id_Solicitud=NEW.ID_SOLICITUD AND Nro_Integrante= NEW.Nro_Integrante;
END IF;
END


Encontré esta respuesta: Una función o un disparador almacenado no puede modificar una tabla que ya está siendo utilizada (para leer o escribir) por la declaración que invocó la función o el disparador.

Mi caso es el que menciona, pero hay alguna manera de solucionar ese error? el código de error es #1442 mysql
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