Розглянемо наступний приклад (з початку 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
- приємно!