Я пытаюсь быть настолько ленивым, насколько это возможно, генерируя серию команд SQL в файле для подачи в psql
для обработки. В двух словах, я загружаю серию таблиц импорта из внешних источников (уже сделано, через COPY), а затем на последнем этапе удаляю / обновляю / вставляю записи в первичные таблицы (что также функционально выполняется).
Единственное, что мешает мне преуспеть (и я могу делать все из серии команд в скрипте оболочки), это то, что иногда в операции возникают ошибки ссылочной целостности, и поэтому мне приходится откатывать все до тех пор, пока источник может быть идентифицирован и исправлен.
Так есть ли способ узнать из скрипта, обработанного psql
, что произошла ошибка, и выполнить откат? И если ошибок не было, передайте.
Я всегда могу решить эту проблему, переключившись на язык более высокого уровня, открыв соединение и выполнив каждое утверждение и проверив наличие ошибок, но это всего лишь дополнительный код, который я бы хотел избежать, если это возможно.