Heim >Datenbank >MySQL-Tutorial >Wie aktualisiere ich eine Tabellenspalte in MySQL mithilfe eines After-Insert-Triggers korrekt?

Wie aktualisiere ich eine Tabellenspalte in MySQL mithilfe eines After-Insert-Triggers korrekt?

Barbara Streisand
Barbara StreisandOriginal
2024-11-26 07:23:11960Durchsuche

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

MySQL nach dem Einfügen eines Triggers zum Aktualisieren der Spalte einer anderen Tabelle

Diese Abfrage versucht, einen Trigger in MySQL zu erstellen, der eine Spalte in der BookingRequest-Tabelle aktualisiert wenn eine Zeile in die OccupiedRoom-Tabelle eingefügt wird. Der bereitgestellte Trigger funktioniert jedoch nicht wie vorgesehen.

Um dieses Problem zu beheben, finden Sie hier eine korrigierte Version des Triggers:

DELIMITER $$
CREATE TRIGGER acquire_trig
AFTER FÜR JEDEN AUF OccupiedRoom EINFÜGEN REIHE
Anfang

   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;

ENDE;

$$ DELIMITER ; **Triggerdetails:** * Der Trigger wird mithilfe der Klausel „AFTER INSERT“ definiert, was bedeutet, dass er ausgeführt wird, nachdem eine Zeile in die Tabelle „OccupiedRoom“ eingefügt wurde. * Der Trigger verwendet eine „FOR EACH ROW“-Klausel, um jede eingefügte Zeile einzeln zu verarbeiten. * Im Abzugskörper: * Es deklariert eine boolesche Variable „@id_exists“, um zu prüfen, ob die „idRequest“ aus der eingefügten Zeile „OccupiedRoom“ in der Tabelle „BookingRequest“ vorhanden ist. * Es überprüft die Tabelle „BookingRequest“, um festzustellen, ob die „idRequest“ der neu eingefügten Zeile „OccupiedRoom“ vorhanden ist. Wenn dies der Fall ist, wird „@id_exists“ auf „1“ gesetzt. * Wenn „@id_exists“ „1“ ist, wird die Spalte „status“ in der Tabelle „BookingRequest“ auf „1“ aktualisiert, wobei „idRequest“ mit dem neuen „idRequest“ aus der Tabelle „OccupiedRoom“ übereinstimmt.

Das obige ist der detaillierte Inhalt vonWie aktualisiere ich eine Tabellenspalte in MySQL mithilfe eines After-Insert-Triggers korrekt?. 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