Postgres-SQL schlägt bei Skriptfehler fehl
Gibt es eine Möglichkeit, um anzugeben, dass beim ausführen einer sql-Skript Stoppt es bei der Begegnung mit dem ersten Fehler im script, es in der Regel weiterhin, unabhängig von früheren Fehlern.
Dank
InformationsquelleAutor der Frage Ray | 2010-12-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich glaube, die Lösung, fügen Sie die folgende .psqlrc ist weit von Perfektion
gibt es viel mehr einfache und bequeme Weise - verwenden Sie psql mit parameter:
besser zu nutzen, auch
-X
parameter ausschalten .psqlrc-Datei verwenden.Funktioniert perfekt für mich
p.s. die Lösung, die gefunden werden, in großen post von Peter Eisentraut. Danke, Peter!
http://petereisentraut.blogspot.com/2010/03/running-sql-scripts-with-psql.html
InformationsquelleAutor der Antwort Alfishe
Ich nehme an, Sie sind mit
psql
dies könnte nützlich sein, um hinzufügen, um Ihre~/.psqlrc
Datei.Dadurch wird es Abbrechen, auf den ersten Fehler. Wenn Sie es nicht haben, selbst mit einer Transaktion, Sie halten bei der Ausführung Ihrer Skripts, aber nicht auf alles, bis zum Ende Ihres Skripts.
Und Sie wahrscheinlich wollen, um mit einer Transaktion, wie Paul sagte. Was auch getan werden kann, mit
psql --single-transaction ...
wenn Sie nicht möchten, ändern Sie das Skript.Also ein komplettes Beispiel, mit ON_ERROR_STOP in Ihr .psqlrc:
InformationsquelleAutor der Antwort plundra
Ist es nicht genau das, was Sie wollen, aber wenn Sie starten Sie Ihr Skript mit
begin transaction;
und Ende mitend transaction;
es wird tatsächlich überspringen alles, was nach dem ersten Fehler, und dann wird es rollback-alles wie vor dem Fehler.InformationsquelleAutor der Antwort Paul Tomblin