Sie werden nicht in der Lage sein, von einem Trigger in dieselbe Tabelle einzufügen . Ich würde Ihren Auslöser durch eine Prozedur ersetzen und dann alle Statusaktualisierungen durch die Prozedur leiten:
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;
Obwohl die Prozedur einige Änderungen an Ihrem Code erfordert (d. h. Sie müssen die Prozedur aufrufen, anstatt die Daten direkt zu aktualisieren), hat die Prozedur den Vorteil, dass sie offensichtlicher ist – Trigger, die Dinge automatisch im Hintergrund ausführen, können nicht intuitiv sein.