Maison > base de données > tutoriel mysql > Comment mettre à jour correctement une colonne de table dans MySQL à l'aide d'un déclencheur après insertion ?

Comment mettre à jour correctement une colonne de table dans MySQL à l'aide d'un déclencheur après insertion ?

Barbara Streisand
Libérer: 2024-11-26 07:23:11
original
947 Les gens l'ont consulté

How to Correctly Update a Table Column in MySQL Using an After Insert Trigger?

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;
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal