Hallo zusammen,
ich versuche meine ersten Schritte in DB2 zu machen und habe mir einen kleinen Trigger ausgedacht, den ich auf meiner DB erstellen möchte. Allerdings habe ich so mein Problem mit der Syntax, hoffe ich doch zumindest. Was ist an dem Code falsch?
create trigger mytrigger 
after insert on mytest 
REFERENCING OLD AS o NEW AS n 
FOR EACH ROW 
BEGIN ATOMIC 
IF (n.TRIGGER_FILL is null) 
THEN set n.TRIGGER_FILL = 'Trigger filled’
END IF;
END
Ich bekomme beim ausführen des Codes die Fehlermeldung:
Error: DB2 SQL Error: SQLCODE=-104, SQLSTATE=42601, SQLERRMC=END;= ‚Trigger filled‘
;, DRIVER=3.62.80
Danke & Gruß
Michael
             
            
              
              
              
            
            
           
          
            
            
              Hallo Michael,
du hast nur ein Semikolon vergessen, es muss heissen
THEN set n.TRIGGER_FILL = ‚Trigger filled‘;
Ein weiteres Problem wird deine REFERENCING Klausel sein,
AFTER INSERT kann es keinen OLD Satz geben …
Gruss,
SomeOne
             
            
              
              
              
            
            
           
          
            
            
              Leider bekomme ich damit auch eine Fehlermeldung. 
Ich nutze das Prog SQuirreL SQL Client um mich auf die DB zu verbinden - könnte es sein, dass das Ding ein Problem hat??
Ich habe schon einen Trigger aus einem der IBM Doku ausprobiert, natürlich auf meine Tabelle leicht angepasst, aber das Ergebnis ist das Selbe.
http://www.ibm.com/developerworks/data/tutorials/dm0…
             
            
              
              
              
            
            
           
          
            
            
              Jetzt habe ich die Syntax die funktioniert 
CREATE TRIGGER mytrigger 
BEFORE INSERT ON mytest 
REFERENCING NEW AS n 
FOR EACH ROW 
WHEN (n.trigger_fill = ‚‘) 
SET n.trigger_fill = ‚Trigger filled‘
             
            
              
              
              
            
            
           
          
            
            
              Hi Michael,
das hatte ich gestern beim Testen auch festgestellt dass du noch diverse andere Fehler in deiner Syntax hattest. Wollte es dir noch schreiben, bin dann aber abends nicht mehr dazu gekommen.
Aber du hast ja jetzt selbst erkannt , dass das was du machen wolltest AFTER INSERT keinen Sinn ergibt 
 .
Weiterhin happy trigger ,
SomeOne