Wie zu Referenz Alte Werte und neue Werte in SQL

Ein Teil der SQL CREATE TRIGGER Syntax, die Sie verwenden können, ist das optionale REFERENCING old_or_new_value_alias_list Phrase. Es ermöglicht Ihnen, einen Alias ​​oder Korrelationsnamen zu erstellen, die Werte in der Trigger des Subjekts Tabelle verweist. Nachdem Sie einen Korrelationsnamen für neue Werte oder einen Aliasnamen für neue Tabelleninhalte zu erstellen, können Sie dann die Werte verweisen, die nach einer existieren EINFÜGEN oder AKTUALISIEREN Betrieb.

In ähnlicher Weise, nachdem Sie einen Korrelationsnamen für alte Werte oder einen Alias ​​für alte Tabelleninhalte zu erstellen, können Sie dann die Werte verweisen, die vor einem in der Fachtabelle bestanden AKTUALISIEREN oder LÖSCHEN Betrieb.

Das old_or_new_values_alias_list in dem CREATE TRIGGER Syntax kann eine oder mehrere der folgenden Sätze sein:

OLD [row] [AS] 

oder

NEW [row] [AS] 

oder

ALTER TABLE [AS] 

oder

NEW TABLE [AS] 

Die Tabellen-Aliases sind Bezeichner für Übergangstabellen, die nicht persistent sind, aber die gibt es nur die Referenzierung Betrieb zu erleichtern. Wie man erwarten würde, NEW ROW und NEW TABLE kann nicht für eine festgelegt werden LÖSCHEN Auslöser, und OLD ROW ebenso gut wie ALTER TABLE kann nicht für ein festgelegt werden EINFÜGEN Auslöser.

Nachdem Sie eine Zeile oder Tabelle zu löschen, gibt es keinen neuen Wert. Ähnlich, OLD ROW und ALTER TABLE kann nicht für ein festgelegt werden EINFÜGEN Auslöser. Es gibt keine alten Werte zu verweisen.

In einem Trigger auf Zeilenebene, können Sie einen alten Wert Korrelationsnamen verwenden, um die Werte in der Zeile wird geändert oder gelöscht durch die auslösende SQL-Anweisung zu verweisen, wie die Reihe existierte, bevor die Anweisung geändert oder gelöscht es. In ähnlicher Weise ist ein alter Werttabelle alias, was Sie die Werte in der gesamten Tabelle zugreifen, da sie existierte, bevor die Auslöseaktion der SQL-Anweisung in Kraft getreten ist.

Sie können auch nicht angeben ALTER TABLE oder NEW TABLE mit einem VOR Auslöser. Die Übergangstabellen durch die erstellt ALTER TABLE oder NEW TABLE Stichwort sind zu wahrscheinlich durch die Aktionen von der ausgelösten SQL-Anweisung verursacht betroffen sein. Zur Beseitigung dieses potentielle Problem, indem ALTER TABLE und NEW TABLE mit einem VOR Auslöser ist verboten.

Menü