Maison > Article > base de données > Comment créer un déclencheur MySQL pour mettre à jour la colonne d'une autre table après une insertion ?
Déclencheur MySQL pour mettre à jour la colonne de différentes tables après l'insertion
Cette question implique la création d'un déclencheur MySQL qui met à jour la colonne d'état dans la table BookingRequest en fonction lors de l'insertion d'une ligne dans la table OccupiedRoom.
Le code déclencheur initial tentait de mettre à jour directement la table BookingRequest à l'aide d'un comparaison entre BookingRequest.idRequest et NEW.idRequest. Cependant, cette approche n'a pas abouti.
Pour résoudre ce problème et créer un déclencheur fonctionnel, le code ci-dessous doit être utilisé :
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 ;
Ce déclencheur utilise une variable @id_exists pour vérifier si le idRequest de la table OccupiedRoom existe dans la table BookingRequest. Si tel est le cas, il définit la colonne d'état de la table BookingRequest sur « 1 ».
En utilisant l'espace réservé NEW dans le déclencheur, la comparaison est désormais effectuée correctement entre l'idRequest de la ligne insérée et l'idRequest correspondant dans le Tableau de demande de réservation.
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!