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