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!