Rozważmy następujący przykład (od początku skryptu psql):
\c :db_to_run_on
TRUNCATE the_most_important_table;
-- tried to avoid similarities to anything that exists out there
Teraz, jeśli jest to uruchomione przez polecenie
psql [connection details] -v db_to_run_on=\'dev_database\'
to po prostu działa i użytkownik jest zadowolony. Ale co jeśli zdecyduje się określić -v db_to_run_on=production_database
? (Załóżmy, że może się to zdarzyć, tak jak ludzie biegają rm -rf / # don't try this at home!!!
okazjonalnie.) Mam nadzieję, że istnieje nowa kopia zapasowa tego stołu ...
Powstaje więc pytanie: jak sprawdzić zmienne przekazane do skryptu i zatrzymać dalsze przetwarzanie na podstawie ich wartości?
\set ON_ERROR_STOP on
- miły!