Witam. Zaczne od tego ze dostalem gotowa baze i program ja obslugujacy, wiec zmiany zwiazane z programem albo gruntowna przebudowa bazy raczej nie wchodza w gre.
Sprawa wyglada w ten sposob, ze w jednej tabeli (nazwijmy ja czynnosci) umieszczone sa rozne typy czynnosci - sa czynnosci "wieksze", ktore skladaja sie z czynnosci "mniejszych" (np. "wieksza" czynnosc 'budowanie drogi' sklada sie z 'kopania rowu', 'wylewania asfaltu' itd.). Kazda mniejsza czynnosc ma zapisany czas potrzebny na jej wykonanie. Rodzaj czynnosci (glowna albo skladowa) oznaczona jest jako jedno z pol tabeli i na podstawie tego mozna zorientowac sie jakiego typu jest to czynnosc. Moim zadaniem jest wpisywanie do czynnosci wiekszych czasu potrzebnego na jej zakonczenie, czyli sumy czasow czynnosci skladowych.
Pierwszym pomyslem bylo uzycie triggera. Wszystko wydawalo sie proste, ale pojawil sie problem, bo mysql wywalal blad ktory brzmial mniej wiecej tak: "nie mozna modyfikowac tabeli, do ktorej nalezy uruchomiony trigger". Wywolanie takiej funkcji rzeczywiscie mogloby doprowadzic do rekurencyjnych wywolan triggerow i do zapetlenia sie, ALE w tym przypadku zapytania w triggerze sa tak skonstruowane, ze zapetlenie jest niemozliwe.
Czy jest jakis sposob na zrobienie tego za pomoca triggerow? Probowalem Before insert, after insert, procedur wywolywanych z triggera i zawsze wywalalo blad. Problem zalatwialoby wywolanie procedury chwile po zakonczeniu triggera, ale nie wiem czy jest taka mozliwosc.