Давайте рассмотрим следующий пример (с самого начала сценария psql):
\c :db_to_run_on
TRUNCATE the_most_important_table;
-- tried to avoid similarities to anything that exists out there
Теперь, если это запустится командой
psql [connection details] -v db_to_run_on=\'dev_database\'
тогда он просто запускается, и пользователь счастлив. Но что если он (и) решит уточнить -v db_to_run_on=production_database
? (Предположим, что это может произойти, точно так же, как люди бегут rm -rf / # don't try this at home!!!
случайно). Надеюсь, есть свежая резервная копия этой таблицы ...
Таким образом, возникает вопрос: как проверить переменные, переданные в сценарий, и остановить дальнейшую обработку на основе их значения?
\set ON_ERROR_STOP on
- отлично!