Maison >base de données >tutoriel mysql >Comment mettre à jour le statut d'une demande de réservation après son insertion dans OccupiedRoom à l'aide d'un déclencheur MySQL ?
MySQL après l'insertion du déclencheur met à jour la colonne d'une autre table
Lors de la création d'une demande de réservation, il est nécessaire de mettre à jour le statut dans la table BookingRequest en fonction de l'insertion d'une requête correspondante dans la table OccupiedRoom. Pour y parvenir, un déclencheur est nécessaire.
Pour commencer, définissez les tables suivantes :
<br> -- Table BookingRequest :<br> CREATE TABLE BookingRequest (</p> <pre class="brush:php;toolbar:false">idRequest INT NOT NULL AUTO_INCREMENT, roomClass INT NOT NULL, inDate DATE NOT NULL, outDate DATE NOT NULL, numOfBeds INT NOT NULL, status INT NOT NULL, idUser INT NOT NULL, PRIMARY KEY (idRequest), INDEX idx_status (status), INDEX idx_user (idUser)
);
-- Table d'état :
CRÉER Statut de la TABLE (
idStatus INT NOT NULL AUTO_INCREMENT, nameStatus ENUM('underConsideration', 'approved', 'rejected'), PRIMARY KEY (idStatus)
);
-- Table OccupiedRoom :
CREATE TABLE OccupiedRoom (
idOccupation INT NOT NULL AUTO_INCREMENT, idRoom INT NOT NULL, idRequest INT NOT NULL, PRIMARY KEY (idOccupation), INDEX idx_id_room (idRoom), INDEX idx_id_request (idRequest)
);
Maintenant, écrivons le trigger :
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 ;
Voici comment cela fonctionne :
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!