MySQL après l'insertion d'un déclencheur pour mettre à jour la colonne d'une autre table
Cette requête tente de créer un déclencheur dans MySQL qui met à jour une colonne dans la table BookingRequest lorsqu'une ligne est insérée dans la table OccupiedRoom. Cependant, le déclencheur fourni ne fonctionne pas comme prévu.
Pour résoudre ce problème, voici une version corrigée du déclencheur :
DELIMITER $$
CREATE TRIGGER occup_trig
AFTER INSÉRER SUR LA Pièce Occupée POUR CHACUN 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;
$$ DÉLIMITEUR ; **Détails du déclencheur :** * Le déclencheur est défini à l'aide de la clause `AFTER INSERT`, ce qui signifie qu'il s'exécute après l'insertion d'une ligne dans la table `OccupiedRoom`. * Le déclencheur utilise une clause `FOR EACH ROW` pour traiter chaque ligne insérée individuellement. * À l'intérieur du corps de la gâchette : * Il déclare une variable booléenne `@id_exists` pour vérifier si le `idRequest` de la ligne `OccupiedRoom` insérée existe dans la table `BookingRequest`. * Il vérifie la table `BookingRequest` pour déterminer si le `idRequest` de la ligne `OccupiedRoom` nouvellement insérée existe. Si c'est le cas, il définit `@id_exists` sur `1`. * Si `@id_exists` est `1`, il met à jour la colonne `status` dans la table `BookingRequest` à '1' où `idRequest` correspond au nouveau `idRequest` de la table `OccupiedRoom`.
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!