Du kommer inte att kunna infoga i samma tabell från en utlösare . Jag skulle ersätta din trigger med en procedur och sedan kanalisera alla statusuppdateringar genom proceduren:
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;
Även om proceduren kommer att kräva viss modifiering av din kod (dvs. du kommer att behöva anropa proceduren snarare än att uppdatera data direkt), har proceduren fördelen av att vara mer uppenbar - triggers som gör saker automagiskt i bakgrunden kan vara icke-intuitiva.