ลองพิจารณาตัวอย่างต่อไปนี้ (ตั้งแต่เริ่มต้นของสคริปต์ 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\'
จากนั้นมันจะทำงานและผู้ใช้มีความสุข แต่สิ่งที่ถ้า (s) เขาตัดสินใจที่จะระบุ-v db_to_run_on=production_database
? (สมมติว่าสิ่งนี้สามารถเกิดขึ้นได้เช่นเดียวกับที่ผู้คนเรียกใช้rm -rf / # don't try this at home!!!
บางครั้ง) หวังว่าจะมีการสำรองข้อมูลใหม่ของตารางนั้น ...
ดังนั้นคำถามที่เกิดขึ้น: วิธีการตรวจสอบตัวแปรที่ส่งผ่านไปยังสคริปต์และหยุดการประมวลผลเพิ่มเติมตามค่าของพวกเขา
\set ON_ERROR_STOP on
- ดี!