MySQL aktualisiert nach dem Einfügen-Trigger die Spalte einer anderen Tabelle
Beim Erstellen einer Buchungsanfrage ist es notwendig, den Status in der BookingRequest-Tabelle basierend auf zu aktualisieren das Einfügen einer entsprechenden Anfrage in die OccupiedRoom-Tabelle. Um dies zu erreichen, ist ein Trigger erforderlich.
Definieren Sie zunächst die folgenden Tabellen:
<br> -- BookingRequest-Tabelle:<br> CREATE TABLE BookingRequest (</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">idRequest INT NOT NULL AUTO_INCREMENT, roomClass INT NOT NULL, inDate DATE NOT NULL, outDate DATE NOT NULL, numOfBeds INT NOT NULL, status INT NOT NULL, idUser INT NOT NULL, PRIMARY KEY (idRequest), INDEX idx_status (status), INDEX idx_user (idUser)
);
-- Statustabelle:
TABELLE ERSTELLEN Status (
idStatus INT NOT NULL AUTO_INCREMENT, nameStatus ENUM('underConsideration', 'approved', 'rejected'), PRIMARY KEY (idStatus)
);
-- OccupiedRoom-Tabelle:
TABELLE ERSTELLEN OccupiedRoom (
idOccupation INT NOT NULL AUTO_INCREMENT, idRoom INT NOT NULL, idRequest INT NOT NULL, PRIMARY KEY (idOccupation), INDEX idx_id_room (idRoom), INDEX idx_id_request (idRequest)
);
Jetzt schreiben wir das Trigger:
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 ;
So funktioniert es:
Das obige ist der detaillierte Inhalt vonWie aktualisiere ich den Status einer Buchungsanfrage nach dem Einfügen in OccupiedRoom mithilfe eines MySQL-Triggers?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!