Da dette er det bedste svar på Google, når du søger efter "savepoint eksisterer ikke", tilføjer jeg også min løsning her.
Jeg havde en TRUNCATE
sætning i koden udført i min transaktion, hvilket forårsagede en implicit commit og dermed afsluttede transaktionen. Oprettelse af et lagringspunkt uden for en transaktion forårsager ikke en fejl, det vil bare ikke blive udført. Det betyder, at første gang du bemærker, at der er noget galt, er når du prøver at frigive dit savepoint / rulle det tilbage.
Dette er den fulde liste over udsagn, der forårsager en implicit commit: https://dev.mysql.com/doc/refman/5.7/en/implicit-commit.html