Maison >base de données >tutoriel mysql >Comment créer un déclencheur pour mettre à jour une colonne dans une autre table basée sur une opération INSERT ?
Déclencheur pour mettre à jour la colonne d'une autre table
Dans votre base de données, vous avez trois tables : BookingRequest, status et OccupiedRoom. Vous souhaitez créer un déclencheur qui modifie la colonne d'état de la table BookingRequest à « 1 » chaque fois qu'une demande avec le même ID est ajoutée à la table OccupiedRoom.
Vous avez déjà tenté le déclencheur suivant :
create trigger occupy_trig after insert on OccupiedRoom for each row begin if BookingRequest.idRequest= NEW.idRequest then update BookingRequest set status = '1'; where idRequest = NEW.idRequest; end if; END;
Cependant, cela n’a pas abouti. Voici une version modifiée qui devrait fonctionner :
DELIMITER $$ CREATE TRIGGER occupy_trig AFTER INSERT ON `OccupiedRoom` FOR EACH ROW begin DECLARE id_exists Boolean; -- Check BookingRequest table SELECT 1 INTO @id_exists FROM BookingRequest WHERE BookingRequest.idRequest= NEW.idRequest; IF @id_exists = 1 THEN UPDATE BookingRequest SET status = '1' WHERE idRequest = NEW.idRequest; END IF; END; $$ DELIMITER ;
Explication :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!