Ponieważ jest to najlepsza odpowiedź w Google podczas wyszukiwania hasła „savepoint nie istnieje”, dodam tutaj również moje rozwiązanie.
Miałem TRUNCATE
oświadczenie w kodzie wykonanym w mojej transakcji, które spowodowało niejawne zatwierdzenie i tym samym zakończyło transakcję. Utworzenie punktu zapisu poza transakcją nie powoduje błędu, po prostu nie zostanie wykonane. Oznacza to, że po raz pierwszy zauważysz, że coś jest nie tak, gdy spróbujesz zwolnić swój punkt zapisu / cofnąć go.
Oto pełna lista oświadczeń, które powodują niejawne zatwierdzenie: https://dev.mysql.com/doc/refman/5.7/en/implicit-commit.html