Heim >Datenbank >MySQL-Tutorial >„Mit den Schlüsselwörtern OLD und NEW können wir auf Spalten in den vom Trigger betroffenen Zeilen zugreifen.'
Da wir wissen, dass wir uns bei der Triggerdefinition auf die Spalte der Zeile beziehen können, die eingefügt, aktualisiert oder gelöscht wird. So ermöglichen uns die Schlüsselwörter OLD und NEW den Zugriff auf Spalten:
Wir müssen dem Spaltennamen ein OLD-Qualifikationsmerkmal voranstellen, um auf den Wert in der ursprünglichen Zeile zu verweisen.
Wir müssen das Qualifikationsmerkmal NEW vor dem Spaltennamen voranstellen, um auf den Wert in der neuen Zeile zu verweisen.
Nun müssen ALT und NEU entsprechend verwendet werden, da das Ereignis ausgelöst wird
Bestimmen Sie, was erlaubt ist −
Im INSERT-Trigger stellt NEW.column_name den Spaltenwert dar, der in die neue Zeile eingefügt werden soll. OLD ist hier nicht erlaubt.
Im DELETE-Trigger stellt OLD.column_name den Wert einer Spalte in der zu löschenden Zeile dar. Hier ist NEW nicht erlaubt.
Im UPDATE-Trigger beziehen sich OLD.column_name und NEW.column_name auf den Wert der Spalte in der Zeile vor bzw. nach der Aktualisierung der Zeile.
Mit anderen Worten können wir sagen, dass OLD schreibgeschützt verwendet werden muss, während NEW zum Lesen oder Ändern des Werts einer Spalte verwendet werden kann.
Das Folgende ist ein DELETE-Trigger-Beispiel, das zeigt, wie OLD verwendet wird −
mysql> CREATE TRIGGER studentinfo_after_delete -> AFTER DELETE -> ON student_info -> FOR EACH ROW FOLLOWS -> BEGIN -> DECLARE vuser varchar(30); -> SELECT USER() into vuser; -> INSERT INTO student_info_deleted(id,deleted_date,deleted_by) VALUES(OLD.id,SYSDATE(),vuser); -> END; // Query OK, 0 rows affected (0.25 sec)
Das Folgende ist ein Beispiel für den INSERT-Trigger, das zeigt, wie NEW −
verwendet wirdmysql> Create Trigger before_inser_studentage BEFORE INSERT ON student_age FOR EACH ROW BEGIN IF NEW.age < 0 THEN SET NEW.age = 0; END IF; END // Query OK, 0 rows affected (0.30 sec)
Das obige ist der detaillierte Inhalt von„Mit den Schlüsselwörtern OLD und NEW können wir auf Spalten in den vom Trigger betroffenen Zeilen zugreifen.'. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!