आइए निम्नलिखित उदाहरण पर विचार करें (एक 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
- अच्छा!