43 lines
1007 B
Plaintext
43 lines
1007 B
Plaintext
The DML events clause of a trigger is not meant to be used with multiple ``++OF++`` conditions. When it is, only the last one will actually be taken into account, without any error message being produced. This can lead to counter-intuitive code.
|
|
|
|
|
|
Only the ``++UPDATE++`` event should have an ``++OF++`` condition, and there should be at most one occurence of it.
|
|
|
|
|
|
== Noncompliant Code Example
|
|
|
|
----
|
|
CREATE OR REPLACE TRIGGER myTrigger
|
|
BEFORE UPDATE OF firstName OR UPDATE OF lastName -- Noncompliant - will *only* be triggered on updates of lastName!
|
|
ON myTable
|
|
FOR EACH ROW
|
|
BEGIN
|
|
NULL;
|
|
END;
|
|
/
|
|
----
|
|
|
|
|
|
== Compliant Solution
|
|
|
|
----
|
|
CREATE OR REPLACE TRIGGER myTrigger
|
|
BEFORE UPDATE OF firstName, lastName -- Compliant - triggered on updates of firstName or/and lastName
|
|
ON myTable
|
|
FOR EACH ROW
|
|
BEGIN
|
|
NULL;
|
|
END;
|
|
/
|
|
----
|
|
|
|
ifdef::env-github,rspecator-view[]
|
|
|
|
'''
|
|
== Implementation Specification
|
|
(visible only on this page)
|
|
|
|
include::message.adoc[]
|
|
|
|
endif::env-github,rspecator-view[]
|