On Fri, 5 Nov 2021 at 05:21, Daniel Gustafsson <dan...@yesql.se> wrote:


> > Same reasoning as for all the other if exists we have, idempotence.
> Being able to run the command on an object that is already in the desired
> state without provoking an error.
>
> If the object is known to be in the desired state, there is no need to use
> IF
> EXISTS.  Personally I think IF EXISTS commands are useful when they
> provide a
> transition to a known end state, but in this case it's an unknown end
> state.
>

The whole point of IF EXISTS, not to mention IF NOT EXISTS and OR REPLACE,
is that the same script can run without error on a variety of existing
schemas. They aren't (primarily) for typing directly at the psql prompt. At
the time the script is written, the state of the object when the script is
run is unknown.

Reply via email to