Run a bunch of sql commands in a single transaction.
Often times, you will have a text file filled with SQL commands that you want to execute as a single transaction, and it's easy to forget to put the "commit;" as the last command in the file. There's a way around this, using the --single-transaction flag:
psql \ -X \ -U myuser \ -h myhost \ -f /path/to/sql/file.sql \ --echo-all \ --single-transaction \ --set AUTOCOMMIT=off \ --set ON_ERROR_STOP=on \ mydatabase
And so the contents of file.sql could be:
insert into foo (bar) values ('baz'); insert into yikes (mycol) values ('hello');
and both inserts will be wrapped in a begin/commit.