No podrá insertar en la misma tabla desde un disparador . Reemplazaría su disparador con un Procedimiento y luego canalizaría todas las actualizaciones de estado a través del procedimiento:
CREATE PROCEDURE UpdateJobStatus(jobId INT, NewStatus NVARCHAR(50))
BEGIN
UPDATE job
SET `Status` = NewStatus
WHERE job_id = jobId;
IF NewStatus = 'COMPLETED' AND jobId <=6 THEN
INSERT INTO job(cycle_id, job_id, status)
SELECT cycle_id, job_id+1, 'WATING_TO_START'
FROM job
WHERE job_id = jobId;
END IF;
END;
Aunque el procedimiento requerirá algunas modificaciones en su código (es decir, deberá llamar al procedimiento en lugar de actualizar los datos directamente), el procedimiento tiene la ventaja de ser más obvio:los disparadores que hacen las cosas automáticamente en segundo plano pueden no ser intuitivos.