Name
SET CONSTRAINTS -- Sets the constraint mode for the current transaction block.
Synopsis
SET CONSTRAINTS { ALL |
constraint
[,... ] }
{ DEFERRED | IMMEDIATE }
Parameters
-
ALL
-
The keyword indicating that the mode you are specifying should be applied to all constraints within the current transaction.
-
constraint
-
The name of a specific constraint of which you wish to set the mode.
-
DEFERRED
-
The keyword indicating that constraints (or a specific constraint) shouldn't be checked until the transaction reaches a COMMIT.
-
IMMEDIATE
-
The keyword indicating that constraints (or a specific constraint)
should
be checked at the end of each statement within a transaction.
Results
-
SET CONSTRAINTS
-
The message returned when a constraint mode is set successfully.
-
ERROR: Constraint '
constraint
' does not exist
-
The error returned if you attempt to change the mode of a
constraint
that does not exist.
Description
Use the SET CONSTRAINTS command to set the constraint mode for all constraints or for a single constraint within the current transaction block. You can choose to set the constraint mode to either IMMEDIATE or DEFERRED. Use of IMMEDIATE mode will force the checking of all constraints at the end of each statement within the transaction. In DEFERRED mode, constraints are not checked until a COMMIT command is issued.
Note: PostgreSQL 7.1.x (the most current version as of the writing of this book) only supports the use of these modes with foreign key constraints, as both check and unique constraints are set to a constraint mode that is not affected by this command.
Example
The following example sets the constraint evaluation mode to IMMEDIATE for all constraints within the transaction:
booktown=#
SET CONSTRAINTS ALL IMMEDIATE;
SET CONSTRAINTS