Написание скрипта psql, который прерывается после первой ошибки

По умолчанию скрипт psql после ошибки продолжает выполняться. Звучит странно, но это вызвано только необходимостью историчес­кой совместимости. К счастью, данный факт можно легко обойти. Можно собрать несколько команд psql в файл, который будет выпол­няться при запуске psql. Если добавить в этот файл опцию on_error_ stop, она будет применена во всех сессиях psql:
Если вам необходимо будет выполнить скрипт без учета создан­ного файла, воспользуйтесь ключом — х. Вероятно, это один из самых безопасных способов при массовом исполнении скриптов.
Администраторам баз данных часто приходится сталкиваться с ситу­ацией, когда для решения одной большой задачи необходимо выпол­нять множество команд. Вам может понадобиться следующее: Первый случай является самым общим и требует выполнения ско­ординированного набора изменении. Как уже говорилось, решением является написание скрипта. Также его можно назвать статическим программированием, так как вы пишете скрипт вручную, а затем ис­полняете его. Задачи второго типа решаются с помощью динамических скрип­тов, то есть вы пишете скрипт, который сам создает скрипт. В данном рецепте рассказывается, как это сделать.
Выполнение действий параллельно неплохо звучит и могло бы быть очень полезным, если бы легко осуществлялось. Иногда это действительно просто, однако одновременное выполнение несколь­ких задач с учетом всех ловушек и возможных ошибок гораздо слож­нее. Если вы считаете, что за ошибками можно не следить, лучше подумайте еще раз. Запуская задачи параллельно, вы не можете вы­полнить их в одной транзакции, поэтому проверки на возможные ошибки проводить необходимо. Но не беспокойтесь — как правило, задача параллельного запуска решается намного проще. Это просто пример динамического написания скриптов, которым поль­зовались администраторы баз данных еще задолго до PostgreSQL. Он может и не сработать, особенно если сгенерировать SQL-текст с синтаксическими ошибками. Просто исправьте их и будьте внимательны. Команда /t означает «только кортежи», то есть в полученном ре­зультате гарантированно не будет заголовков, командных тегов или счетчиков строк. Команда /о отправляет полученный результат в файл запускает команды операционной системы, поэтому /icat по­казывает в ’nix-системах содержимое файла.



Рубрика: Женский интерес

Комментарии закрыты.