Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Verschachteltes Transaktions-Rollback zwischen zwei Sicherungspunkten?

Savepoints werden nicht das tun, was Sie wollen. Wenn Sie zu einem Sicherungspunkt zurückkehren, wird alles nach diesem Sicherungspunkt rückgängig gemacht, unabhängig davon, ob spätere Sicherungspunkte erstellt wurden.

Stellen Sie sich Sicherungspunkte wie einen "Stapel" vor. Sie können nichts aus der Mitte des Stapels ziehen, Sie müssen alles bis auf die gewünschte Ebene entfernen.

Wahrscheinlich suchen Sie nach autonomen Transaktionen. Keine der Datenbanken, die Sie verwenden möchten, unterstützt sie. In PostgreSQL können Sie dies umgehen, indem Sie das Modul dblink verwenden, um eine neue Verbindung zur Datenbank herzustellen und damit zu arbeiten. siehe http://www.postgresql.org/docs/current/static/ dblink.html . Ich weiß nicht, welche Lösungen MySQL oder SQLite anbieten, aber Google hilft jetzt, da Sie den gesuchten Begriff kennen.

Ich empfehle, dass Sie nach Möglichkeit einen Weg finden, diese Anforderung an das Anwendungsdesign zu umgehen. Lassen Sie Ihre Anwendung zwei Datenbankverbindungen und zwei Transaktionen verwenden, um das zu tun, was Sie brauchen, und kümmern Sie sich um die Koordination der beiden nach Bedarf.