MySQL activa los valores de conjunto para la fila NUEVA y actualiza otra en la misma tabla

Tengo una tabla en la que hago un seguimiento de las tarifas de un artículo específico. Estas tarifas pueden cambiar con el tiempo, por lo que tengo dos columnas (fecha de inicio, fecha de finalización) con el conjunto actual de tarifas que siempre tienen una fecha de finalización en el futuro lejano. Ya tengo un activador que uso para hacer algunos cálculos en la nueva fila que se está ingresando, pero también quiero que ocurra si ingreso un elemento que ya tiene una entrada. Quiero configurar la fecha de finalización de la entrada anterior el día antes del la nueva fecha de inicio de la entrada y la nueva fecha de finalización a una fecha remota predeterminada. Aquí está el código para lo que probé primero:

CREATE
DEFINER=`root`@`%`
TRIGGER `im`.`splitBeforeIns`
BEFORE INSERT ON `im`.`split`
FOR EACH ROW
BEGIN
    SET NEW.tcPercent = (NEW.tcOfficeFee / NEW.globalFee) * 100 , NEW.proPercent = 100 - NEW.tcPercent, NEW.endDate = 20501231;
    UPDATE im.split set endDate = ADDDATE(NEW.startDate, -1) where procKey = NEW.procKey AND endDate = 20501231;
END$

El error que recibo es:

ERROR 1442: Can't update table 'split' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.

Respuestas a la pregunta(4)

Su respuesta a la pregunta