Aangezien dit het beste antwoord op Google is bij het zoeken naar "savepoint bestaat niet", zal ik mijn oplossing hier ook toevoegen.
Ik had een TRUNCATE
statement binnen de code uitgevoerd in mijn transactie, die een impliciete commit veroorzaakte en dus de transactie beëindigde. Het creëren van een savepoint buiten een transactie veroorzaakt geen fout, het wordt alleen niet uitgevoerd. Dit betekent dat de eerste keer dat je merkt dat er iets mis is, is wanneer je je savepoint probeert vrij te geven of terug te draaien.
Dit is de volledige lijst met statements die een impliciete commit veroorzaken: https://dev.mysql.com/doc/refman/5.7/en/implicit-commit.html