Witam!
Przy pomocy trigerów zmieniam w systemie stany magazynowe. Program wykonuje pewne zapytania,
sprawdzenie stanu w tabeli dodanie lub odjęcie do tego stanu określonej ilości i update na tej tabeli. No i moje pytanie jest takie, czy trigery wywoływane z tej samej tabeli sa wykonywane równolegle przez silnik bazy czy zawsze po kolei, jeden baza wykona to bierze kolejny z kolejki i go wykonuje? Pytam ponieważ przestawiam system na pracę w sieci i zawsze musze założyć skrajne przypadki a skrajny przypadek to taki w ktorym 20 roznych osob zapisuje rekord wywolujacy ten sam triger ktory wlasnie zmienia stany magazynowe. Nie chcialbym by dwa sprawdzily stan magazynowy pobierajac ilosc 10 , jeden do 10 doda 5 i zapisze 15, drugi do 10 doda 3 i zapisze 13 pozostawiajac na koncu 13 zamiast sytuacji gdzie pierwszy wezmie 10 doda 5 zostawi 15, drugi wykonujacy sie w kolejce wezmie 15 i doda 3 pozostawiajac dla kolejnego 18.
Wyjsciem jest robienie select for update na tabeli ze stanem na poczatku trigera ale czy jest to konieczne bo jezeli wykonywane to jest w calosci w kolejne nie rownolegle to chyba sensu nie ma.
Nie bardzo jest jak przetestowac dwa przypadki bo nie zatrzymam trigery w polowie na zalowanie
pozdrawiam
P.