kann jemand bitte erklären, was gemeint ist mit:neuer und alter Trigger-Code
:new
und :old
in Trigger-Code.
kann jemand bitte erklären, was gemeint ist mit:neuer und alter Trigger-Code
:new
und :old
in Trigger-Code.
:new
und :old
sind Pseudodatensätze, mit denen Sie auf die neuen und alten Werte bestimmter Spalten zugreifen können. Wenn ich eine Tabelle
CREATE TABLE foo (
foo_id NUMBER PRIMARY KEY,
bar VARCHAR2(10),
baz VARCHAR2(10)
);
und ich legen Sie eine Reihe
INSERT INTO foo(foo_id, bar, baz)
VALUES(1, 'Bar 1', 'Baz 1');
dann in einem Zeilenebene vor Insert-Trigger
:new.foo_id will be 1
:new.bar will be 'Bar 1'
:new.baz will be 'Baz 1'
während
:old.foo_id will be NULL
:old.bar will be NULL
:old.baz will be NULL
Wenn Sie Aktualisieren Sie dann diese Zeile
UPDATE foo
SET baz = 'Baz 2'
WHERE foo_id = 1
dann in einer vor einem Update Trigger auf Zeilenebene
:new.foo_id will be 1
:new.bar will be 'Bar 1'
:new.baz will be 'Baz 2'
während
:old.foo_id will be 1
:old.bar will be 'Bar 1'
:old.baz will be 'Baz 1'
Wenn ich löschen Sie die Zeile
DELETE FROM foo
WHERE foo_id = 1
dann in einem vor Zeile löschen -Level-Trigger,
:new.foo_id will be NULL
:new.bar will be NULL
:new.baz will be NULL
während
:old.foo_id will be 1
:old.bar will be 'Bar 1'
:old.baz will be 'Baz 2'
In einem Abzug der :old
Datensatz die Werte vor der auslösenden Anweisung der Ausführung enthält, enthält die :new
Datensatz die Werte nach der Ausführung.
In Plain English:
Sie sind Aliase, die es Ihnen ermöglichen, den Zugriff auf Informationen aus, wie eine Säule war (alt) und wie sie (neu) sein wird.
Alte und neue Werte in den beiden zuvor zur Verfügung und nach Reihe auslöst. Ein neuer Spaltenwert kann in einem BEFORE-Zeilentrigger, aber nicht in einem AFTER-Zeilentrigger zugewiesen werden (weil die Triggeranweisung wirksam wird, bevor ein AFTER-Zeilentrigger ausgelöst wird). Wenn ein BEFORE-Zeilentrigger den Wert von new.column ändert, sieht ein AFTER-Zeilentrigger, der von derselben Anweisung ausgelöst wird, die vom BEFORE-Zeilentrigger zugewiesene Änderung.
Korrelationsnamen können auch im booleschen Ausdruck einer WHEN-Klausel verwendet werden. Ein Doppelpunkt muss den alten und neuen Qualifikationsmerkmalen vorangehen, wenn sie im Body eines Triggers verwendet werden, aber ein Doppelpunkt ist nicht zulässig, wenn die Qualifikationsmerkmale in der WHEN-Klausel oder der REFERENCING-Option verwendet werden.
der old
Wert ist der Wert before the change
und der new
Wert ist die value to be changed
, so beispielsweise auf einem update set col1=10
, 10 ist der new
Wert und der Wert, den Strom in der Spalte ist, ist die alt auf.
Auf einem Einsatz, da alte Wert ist nicht nur neu und auf einem Lösch es keine neuen Wert, nur alte
Ist das Hausaufgaben? – Sparky
geben Sie uns einige Kontext – keyser
es ist eine Revision Frage, die ich vorbereite, müssen Sie die Frage beantworten "was ist gemeint: neu und: alt in Trigger-Code?" – user1300580