Chúng ta hãy xem xét ví dụ sau (từ khi bắt đầu tập lệnh psql):
\c :db_to_run_on
TRUNCATE the_most_important_table;
-- tried to avoid similarities to anything that exists out there
Bây giờ nếu nó được chạy bằng lệnh này
psql [connection details] -v db_to_run_on=\'dev_database\'
Sau đó, nó chỉ chạy và người dùng hạnh phúc. Nhưng nếu (các) anh ấy quyết định chỉ định -v db_to_run_on=production_database
thì sao? (Chúng ta hãy giả sử rằng điều này có thể xảy ra, giống như mọi người chạy một cách rm -rf / # don't try this at home!!!
ngẫu nhiên.) Hy vọng có một bản sao lưu mới của bảng đó ...
Vì vậy, câu hỏi đặt ra: làm thế nào để kiểm tra các biến được truyền cho một tập lệnh và dừng xử lý thêm dựa trên giá trị của chúng?
\set ON_ERROR_STOP on
- đẹp!