Vous ne pourrez pas insérer dans la même table à partir d'un déclencheur . Je remplacerais votre déclencheur par une procédure, puis je canaliserais toutes les mises à jour de statut via la procédure :
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;
Bien que la procédure nécessitera quelques modifications de votre code (c'est-à-dire que vous devrez appeler la procédure plutôt que de mettre à jour les données directement), la procédure a l'avantage d'être plus évidente - les déclencheurs faisant les choses automatiquement en arrière-plan peuvent être non intuitifs.