2017-10-09 1 views
0
DROP TRIGGER IF EXISTS COPILOT_ASSIGNED; 

DELIMITER // 
CREATE TRIGGER COPILOT_ASSIGNED 
    BEFORE INSERT ON crew 
    FOR EACH ROW 
BEGIN 
    IF CHAR_TRIP EXISTS AND CREW_JOB = 'Pilot' 
    THEN SET NEW.CREW_JOB = 'Copilot'; 
    END IF; 
END // 
DELIMITER ; 

INSERT INTO crew VALUES (10019, 109, 'Pilot'); 
INSERT INTO crew VALUES (10019, 106, 'Pilot'); 

SELECT * FROM crew WHERE CHAR_TRIP = 10019; 

Je ne peux pas déterminer comment écrire ce déclencheur. Je dois vérifier si une charte (CREW_TRIP) a déjà été assignée à un pilote (CREW_JOB). Si c'est le cas, le pilote doit être changé en copilote (CREW_JOB).Je dois construire un seul déclencheur qui assigne un pilote en tant que copilote lorsqu'un pilote est déjà assigné pour une charte

+0

DROP DÉCLENCHEUR SI EXISTE COPILOT_ASSIGNED; DELIMITER // CREATE TRIGGER COPILOT_ASSIGNED \t AVANT INSERT sur l'équipage \t POUR CHAQUE LIGNE BEGIN \t IF OLD.CREW_JOB = 'Pilot' \t SET ALORS NEW.CREW_JOB = 'Copilot'; \t END IF; END // \t DELIMITER; –

Répondre

0
DROP TRIGGER IF EXISTS COPILOT_ASSIGNED; 

DELIMITER // 
CREATE TRIGGER COPILOT_ASSIGNED 
    BEFORE INSERT ON crew 
    FOR EACH ROW 
BEGIN 
    IF EXISTS (SELECT * FROM crew WHERE CHAR_TRIP = NEW.CHAR_TRIP AND 
CREW_JOB='Pilot') 
    THEN SET NEW.CREW_JOB = 'Copilot'; 
    END IF; 
END // 
DELIMITER ; 

INSERT INTO crew VALUES (10019, 109, 'Pilot'); 
INSERT INTO crew VALUES (10019, 106, 'Pilot');