2016-07-24 7 views
-1

Ich versuche, einen Auslöser zu schaffen, in dem es um die Menge jeder Zeile überprüft, bevor die Aktualisierung und zeigt eine Fehlermeldung, wenn Quantität fällt unter 2.einen Trigger für jeden Mitarbeiter Anzahl der Zeilen zu begrenzen

CREATE OR REPLACE TRIGGER quantcheck 
BEFORE UPDATE ON equipment 
FOR EACH ROW 
WHEN (old.quantityavailable >= 2) 
BEGIN 
    IF :new.Quantityavailable < 2 
     THEN RAISE_APPLICATION_ERROR (-20001, ' Quantity is below 2'); 
    END IF; 
END Quantcheck; 
/

Die Auslöser wird erstellt, aber wenn ich versuche, es zu überprüfen oder zu überprüfen, ob es funktioniert, erhalte ich einen Fehler und der Auslöser wird nicht richtig ausgeführt.

+1

Haben Sie Fragen? – trincot

+0

Der Auslöser wird erstellt, aber wenn ich es versuche, zu überprüfen oder überprüfen, ob es funktioniert, ich bin gettign einen Fehler und der Trigger ausgeführt wird, nicht korrekt – tontoshame

+0

Fehlermeldung ORA-04098 – tontoshame

Antwort

0

Ich glaube, Sie Fehler ist, dass Sie verwenden old.quantityavailable, und nicht :old.quantityavailable. Auch ich weiß nicht, ob das WHEN erlaubt ist.

+0

Natürlich ist WENN erlaubt. Der Trigger ist absolut korrekt. – Mottor

+0

Wenn der Trigger korrekt wäre, gäbe es keinen Fehler. ;-) – Tenzin

+0

Lies meinen obigen Kommentar zuerst (zu der Frage). Und du kannst es versuchen. – Mottor