Heim  >  Artikel  >  Datenbank  >  Wie erstelle ich einen MySQL-Trigger, um die Spalte einer anderen Tabelle nach einer Einfügung zu aktualisieren?

Wie erstelle ich einen MySQL-Trigger, um die Spalte einer anderen Tabelle nach einer Einfügung zu aktualisieren?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-24 04:12:11242Durchsuche

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

MySQL-Trigger zum Aktualisieren der Spalte einer anderen Tabelle nach dem Einfügen

Diese Frage beinhaltet das Erstellen eines MySQL-Triggers, der die Statusspalte in der BookingRequest-Tabelle basierend aktualisiert beim Einfügen einer Zeile in die OccupiedRoom-Tabelle.

Der anfängliche Triggercode versuchte, die BookingRequest-Tabelle mithilfe eines Vergleichs direkt zu aktualisieren zwischen BookingRequest.idRequest und NEW.idRequest. Dieser Ansatz war jedoch erfolglos.

Um dieses Problem zu beheben und einen funktionalen Trigger zu erstellen, sollte der folgende Code verwendet werden:

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 ;

Dieser Trigger verwendet eine Variable @id_exists, um zu überprüfen, ob die idRequest aus der OccupiedRoom-Tabelle ist in der BookingRequest-Tabelle vorhanden. Wenn dies der Fall ist, wird die Statusspalte in der BookingRequest-Tabelle auf „1“ gesetzt.

Durch die Verwendung des Platzhalters NEW innerhalb des Triggers wird der Vergleich zwischen der idRequest der eingefügten Zeile und der entsprechenden idRequest in der nun korrekt durchgeführt BookingRequest-Tabelle.

Das obige ist der detaillierte Inhalt vonWie erstelle ich einen MySQL-Trigger, um die Spalte einer anderen Tabelle nach einer Einfügung zu aktualisieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn