On Thu, Oct 31, 2024 at 13:15:34 +0100, Dominique Devienne <ddevienne@xxxxxxxxx> wrote:
AFAIK, DEFERRABLE is for temporary violations crossing statement boundaries, to postpone the enforcement of FKs at COMMIT time of the transaction. While a single COPY is just one statement, so whether a temporary violation for self-referential FKs would occur would be implementation-dependent, and thus "neither logical" nor predictable. Applies to other statement types too.
Thanks. I needed to look more carefully under deferrable where it says the following: This controls whether the constraint can be deferred. A constraint that is not deferrable will be checked immediately after every command.
That is pretty clear.