আসুন নীচের উদাহরণটি বিবেচনা করুন (একটি পিএসকিএল স্ক্রিপ্টের শুরু থেকে):
\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!!!
দারুণভাবে চালায় run ) আশা করি সেই টেবিলটির একটি নতুন ব্যাকআপ রয়েছে ...
সুতরাং প্রশ্ন উঠেছে: স্ক্রিপ্টে পাস হওয়া ভেরিয়েবলগুলি কীভাবে পরীক্ষা করবেন এবং তাদের মানের উপর ভিত্তি করে আরও প্রক্রিয়াজাতকরণ বন্ধ করবেন?
\set ON_ERROR_STOP on
- সুন্দর!