May 2018
Intermediate to advanced
576 pages
30h 25m
English
The basic way to ensure that we get all commands successful or none at all is to literally wrap our script into a transaction, as follows:
BEGIN;command 1;command 2;command 3;COMMIT;
Writing a transaction control command involves editing the script, which you may not want to do or even have access to do. There are, however, other ways as well.
From psql, you can do this by simply using the -1 or --single-transaction command-line options, as follows:
bash $ psql -1 -f myscript.sqlbash $ psql --single-transaction -f myscript.sql
The -1 option is short, but I recommend using --single-transaction, as it's much clearer which option is being selected.