Heim > Datenbank > MySQL-Tutorial > Wie erstelle ich einen Trigger zum Aktualisieren einer Spalte in einer anderen Tabelle basierend auf einer INSERT-Operation?

Wie erstelle ich einen Trigger zum Aktualisieren einer Spalte in einer anderen Tabelle basierend auf einer INSERT-Operation?

Barbara Streisand
Freigeben: 2024-11-24 11:17:13
Original
962 Leute haben es durchsucht

How to Create a Trigger to Update a Column in Another Table Based on an INSERT Operation?

Trigger zum Aktualisieren der Spalte einer anderen Tabelle

In Ihrer Datenbank gibt es drei Tabellen: BookingRequest, Status und OccupiedRoom. Sie möchten einen Trigger erstellen, der die Statusspalte in der BookingRequest-Tabelle auf „1“ ändert, wenn eine Anfrage mit derselben ID zur OccupiedRoom-Tabelle hinzugefügt wird.

Sie haben zuvor den folgenden Trigger versucht:

create trigger occupy_trig after insert on OccupiedRoom 
for each row
begin
  if BookingRequest.idRequest= NEW.idRequest
   then
       update BookingRequest
       set status = '1';
       where idRequest = NEW.idRequest;

    end if;
END;
Nach dem Login kopieren

Es war jedoch erfolglos. Hier ist eine modifizierte Version, die funktionieren sollte:

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 ;
Nach dem Login kopieren

Erklärung:

  • Der Trigger wird nach einem Einfügevorgang für die OccupiedRoom-Tabelle definiert.
  • Eine lokale Variable @id_exists wird eingeführt, um zu prüfen, ob die anfragende ID in der BookingRequest vorhanden ist Tabelle.
  • Eine Unterabfrage wird verwendet, um zu ermitteln, ob ein Eintrag mit der passenden ID bereits in der BookingRequest-Tabelle vorhanden ist.
  • Wenn die ID vorhanden ist (@id_exists = 1), wird die BookingRequest-Tabelle aktualisiert indem Sie status = '1' setzen, wobei idRequest mit der ID des neuen Eintrags in OccupiedRoom übereinstimmt.
  • Denken Sie daran, Tabellennamen und potenzielle Schemata anzupassen Feldnamenunterschiede entsprechend.

Das obige ist der detaillierte Inhalt vonWie erstelle ich einen Trigger zum Aktualisieren einer Spalte in einer anderen Tabelle basierend auf einer INSERT-Operation?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage