Commit, Sicherungspunkt, Rollback in PostgreSQL?

7

Kann mir bitte jemand erklären, warum COMMIT in dieser Funktion AUSNAHME zurückgibt?

%Vor%

und warum kann ich ROLLBACK TO SavePoint nicht verwenden, wenn der EXCEPTION-Block in der Funktion existiert?

    
EmirZ 27.03.2011, 11:42
quelle

2 Antworten

8

Sie können nicht in einer plpgsql gespeicherten Funktion / Prozedur mit plpgsql festschreiben, wie Frank Heikens antwortete. Sie können dieses Problem jedoch umgehen, indem Sie dblink ( Ссылка ) oder ein anderes Geschäft verwenden Verfahrenssprache wie z. B. plperl (nicht vertrauenswürdig). Schau dir diesen Link an, über den du gesprochen hast.

Ссылка

Auf der höheren Ebene öffnen Sie eine neue Verbindung mit einer dieser Methoden und geben eine separate Transaktion für diese Verbindung aus. Das funktioniert in den meisten Fällen nicht ideal, weil Sie eine neue Verbindung öffnen, aber für die meisten Anwendungsfälle gut funktionieren.

    
Kuberchaun 27.03.2011, 15:00
quelle
13

Sie können COMMIT nicht in einer gespeicherten Prozedur verwenden, die gesamte Prozedur ist eine eigene Transaktion.

    
Frank Heikens 27.03.2011 11:59
quelle

Tags und Links