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 ?

Comment créer un déclencheur MySQL pour mettre à jour la colonne d'une autre table après une insertion ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-24 04:12:11257parcourir

How to Create a MySQL Trigger to Update a Different Table's Column After an Insert?

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!

Déclaration:
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