trigger selectel

Üdv!
Meggyűlt a bajom a triggerekkel.
Szituáció.:
1.: cikk tábla cikk_id;keszletre
2.: lista tábla cikk_id;menny;vont
3.: keszlet tábla cikk_id;menny.

Azt szeretném, ha a listába beírva egy cikket a keszlet tábla mennyisége akkor változna, ha a cikk táblába készletre = 'i' és a lista táblába a vont <1. Remélem érthető :)

Amit kreáltam:

CREATE TRIGGER `tg_lista_insert` AFTER INSERT ON `lista`
FOR EACH ROW begin
if (select keszletre from cikk where cikk_id=NEW.cikk_id AND cikk.keszletre='i') and NEW.vonid < 1 then
update keszlet set menny=menny+NEW.menny where cikk_id=NEW.cikk_id and raktar_id=NEW.raktar_id;
end if;
end
//

Ha nincs benne a készletre figyelés azaz a zárójelben lévő rész tökéletesen lefut a trigger.

Mit néztem be, ami miatt nem változik a menny értéke?

pch

Hozzászólások

A zárójeles kifejezés karakteres típusúnak tűnik, te meg logikainak használod. Talán ez a gond? EXISTS-es megoldás jobb lenne.

update keszlet set menny=menny+NEW.menny where cikk_id=NEW.cikk_id and raktar_id=NEW.raktar_id and NEW.vonid<1 and exists(select keszletre from cikk where cikk_id=NEW.cikk_id AND cikk.keszletre='i');

gy