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!