Postgresql – Execute pgScript in pgAdmin 4 while skipping errors

error handlingpgadmin-3pgadmin-4postgresql

In pgAdmin3, via the SQL Editor, there is an Execute pgScript button which (unlike Execute Query) would run through the entire script, skipping errors. The SQL editor in pgAdmin4 doesn't appear have this, is there an alternative that I haven't been able to find, or is there a parameter/command I can add to my script in order to skip errors at runtime?

In this instance the script is auto-generated and only renames tables/columns which may not exist so the error output is not required.

I can still run the script in pgAdmin 3 but connecting to a version 9 or above database with pgAdmin3 raises several warnings which don't seem to cause any problems but I'd rather find a solution than a workaround

Using: PostGreSQL 9.5, pgAdmin4 1.6


UPDATE: according to this:

How do we execute pgScripts in pgAdmin4?

You cannot I'm afraid. They've been more or less unsupported for years
as they really became obsolete when Postgres introduced the DO command
for executing anonymous blocks of code in v9.0.

…it looks like I might be able to use DO to force it to behave like pSQL?

Best Answer

On psql, it's the default, but you can (un)set it with \set ON_ERROR_STOP 0|1.

So I suggest trying \set ON_ERROR_STOP 0 at the beginning of the script.

From documentation:

ON_ERROR_STOP

By default, command processing continues after an error. When this variable is set to on, processing will instead stop immediately. In interactive mode, psql will return to the command prompt; otherwise, psql will exit, returning error code 3 to distinguish this case from fatal error conditions, which are reported using error code 1. In either case, any currently running scripts (the top-level script, if any, and any other scripts which it may have in invoked) will be terminated immediately. If the top-level command string contained multiple SQL commands, processing will stop with the current command.