chce napisac triggera, ktory przy UPDATE|INSERT|DELETE zmodyfikuje wszytskie nowsze rekordy (od updateowanego) az dojdzie do zmiennej np 'type' ktora bedzie rowna 1, czyli trzeba pobierac rekordy i sprawdzac zmienna 'type', jesli type = 0 to modyfikujemy...
czyli musze zrobic cos takiego:
FOR SELECT type FROM table t1
WHILE t1.stop = 0 DO
BEGIN
UPDATE table ...
END
narazie mam 'syntax error' i kombinuje jak by to mialo poprawnie wygladac... korzystam z Firebirda i wiem ze rozni sie on troche pod wzgledem przyjmowanej skladni od innych baz.
moj kod wyglada tak:
SET TERM ^ ; CREATE TRIGGER test_trigger FOR test AFTER INSERT OR UPDATE OR DELETE AS DECLARE VARIABLE var1 INTEGER; BEGIN IF (inserting AND new.type = 1) then FOR SELECT type FROM test t1 WHERE t1.var3 > new.var3 INTO :var1 DO WHILE :var1 = 0 DO BEGIN UPDATE test t2 SET t2.var3= new.var3 END IF (updating AND new.type = 1) then /* the same... */ END^ SET TERM ; ^
ale mysle ze obeszlo by sie bez deklarowania zmiennych itd.
moze mi ktos pomoc? z gory thx! :]