Ü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
- 2247 megtekintés
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.
- A hozzászóláshoz be kell jelentkezni
A keszletre mező az enum. értéke 'i','n'.
Hogy lehetne exists-el megoldani?
pch
--
http://www.buster.hu "A" számlázó
--
- A hozzászóláshoz be kell jelentkezni
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
- A hozzászóláshoz be kell jelentkezni