sql >> Databasteknik >  >> RDS >> Mysql

Kapslad återställning av transaktioner mellan två räddningspunkter?

Savepoints kommer inte att göra vad du vill. När du rullar tillbaka till en räddningspunkt rullas allt efter den räddningspunkten tillbaka, oavsett om senare räddningspunkter skapades.

Tänk på räddningspunkter som en "stack". Du kan inte dra ut något från mitten av stapeln, du måste ta bort allt ner till det lager du vill ha.

Du letar förmodligen efter autonoma transaktioner. Ingen av databaserna du vill använda stöder dem. I PostgreSQL kan du komma runt detta med dblink-modulen för att skapa en ny anslutning till databasen och arbeta med den; se http://www.postgresql.org/docs/current/static/ dblink.html . Jag vet inte vilka lösningar MySQL eller SQLite erbjuder, men Google hjälper dig nu när du vet vilken term du letar efter.

Jag rekommenderar att du hittar ett sätt att kringgå detta applikationsdesignkrav om möjligt. Låt din applikation använda två databasanslutningar och två transaktioner för att göra det du behöver, och ta hand om att samordna de två efter behov.




  1. MySQL Klienten och servern kan inte kommunicera, eftersom de inte har en gemensam algoritm

  2. PHP Prepared Statements... Bind variabel som numeriskt område i REGEXP?

  3. Hur lägger man till ett variabelt antal timmar till ett datum i PostgreSQL?

  4. MySqlCommand-parametern fungerar inte