Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ MySQL _ Trigger pobierający dane z tej samej tabeli

Napisany przez: phpion 13.07.2021, 23:37:34

Witam po dłuższej przerwie.

Mam pewien problem, może ktoś będzie w stanie coś doradzić. Mam triggera na tabeli X postawionego AFTER UPDATE. Czasami (bo nie zawsze, nie ma reguły) wykonanie polecenia UPDATE na tabeli X i kolumnach ujętych w triggerze (m.in. warunek IF) powoduje zerwanie połączenia z bazą (MySQL server has gone away). Metodą "zakomentuj frament -> uruchom" doszedłem do tego, że winny jest SELECT wewnątrz triggera, który odpytuje tą samą tabelę. Po jego usunięciu ok. 30 prób wykonania UPDATE przebiega bez problemu, gdy SELECT jest w triggerze to połączenie jest zrywane czasem za 3, czasem za 5, czasem za 9 wywołaniem pod rząd - nie ma zasady, jest w zasadzie losowość. Samo polecenie UPDATE wykonuje się szybko zarówno w momencie gdy wykonuje się prawidłowo, jak i gdy zrywa połączenie (komunikat jest od razu).

Testy przeprowadzałem w phpMyAdmin klikając w kółko: SQL -> wklej zapytanie -> wykonaj, SQL -> wklej... więc nie było to testowane na zasadzie pętli tylko ręcznie. Testowe zapytanie było na zasadzie UPDATE X SET pole = 1 WHERE id = 123; gdzie trigger odpala w sobie SELECTa jeśli NEW.pole = 1.

Podsumowując:
- trigger na tabeli X,
- wewnątrz triggera SELECT na tabeli X,
- czasem zrywanie połączenia z bazą, czasem nie.

Czy ktoś spotkał się z podobnym przypadkiem?

Napisany przez: Pyton_000 15.07.2021, 21:31:21

Pokaż ten trigger cały

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)