Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

set_constraints(7) [osx man page]

SET 
CONSTRAINTS(7) SQL Commands SET CONSTRAINTS(7) NAME
SET CONSTRAINTS - set constraint checking modes for the current transaction SYNOPSIS
SET CONSTRAINTS { ALL | name [, ...] } { DEFERRED | IMMEDIATE } DESCRIPTION
SET CONSTRAINTS sets the behavior of constraint checking within the current transaction. IMMEDIATE constraints are checked at the end of each statement. DEFERRED constraints are not checked until transaction commit. Each constraint has its own IMMEDIATE or DEFERRED mode. Upon creation, a constraint is given one of three characteristics: DEFERRABLE INITIALLY DEFERRED, DEFERRABLE INITIALLY IMMEDIATE, or NOT DEFERRABLE. The third class is always IMMEDIATE and is not affected by the SET CONSTRAINTS command. The first two classes start every transaction in the indicated mode, but their behavior can be changed within a transaction by SET CONSTRAINTS. SET CONSTRAINTS with a list of constraint names changes the mode of just those constraints (which must all be deferrable). The current schema search path is used to find the first matching name if no schema name is specified. SET CONSTRAINTS ALL changes the mode of all deferrable constraints. When SET CONSTRAINTS changes the mode of a constraint from DEFERRED to IMMEDIATE, the new mode takes effect retroactively: any outstanding data modifications that would have been checked at the end of the transaction are instead checked during the execution of the SET CON- STRAINTS command. If any such constraint is violated, the SET CONSTRAINTS fails (and does not change the constraint mode). Thus, SET CON- STRAINTS can be used to force checking of constraints to occur at a specific point in a transaction. Currently, only foreign key constraints are affected by this setting. Check and unique constraints are always effectively not deferrable. Triggers that are declared as ``constraint triggers'' are also affected. NOTES
This command only alters the behavior of constraints within the current transaction. Thus, if you execute this command outside of a trans- action block (BEGIN/COMMIT pair), it will not appear to have any effect. COMPATIBILITY
This command complies with the behavior defined in the SQL standard, except for the limitation that, in PostgreSQL, it only applies to for- eign-key constraints. SQL - Language Statements 2010-05-14 SET CONSTRAINTS(7)

Check Out this Related Man Page

SET 
TRANSACTION(7) SQL Commands SET TRANSACTION(7) NAME
SET TRANSACTION - set the characteristics of the current transaction SYNOPSIS
SET TRANSACTION ISOLATION LEVEL { READ COMMITTED | SERIALIZABLE } SET SESSION CHARACTERISTICS AS TRANSACTION ISOLATION LEVEL { READ COMMITTED | SERIALIZABLE } DESCRIPTION
This command sets the transaction isolation level. The SET TRANSACTION command sets the characteristics for the current SQL-transaction. It has no effect on any subsequent transactions. This command cannot be used after the first query or data-modification statement (SELECT, INSERT, DELETE, UPDATE, FETCH, COPY) of a transaction has been executed. SET SESSION CHARACTERISTICS sets the default transaction isolation level for each transaction for a session. SET TRANSACTION can override it for an individual transaction. The isolation level of a transaction determines what data the transaction can see when other transactions are running concurrently. READ COMMITTED A statement can only see rows committed before it began. This is the default. SERIALIZABLE The current transaction can only see rows committed before first query or data-modification statement was executed in this transac- tion. Tip: Intuitively, serializable means that two concurrent transactions will leave the database in the same state as if the two has been executed strictly after one another in either order. NOTES
The session default transaction isolation level can also be set with the command SET default_transaction_isolation = 'value' and in the configuration file. Consult the Administrator's Guide for more information. COMPATIBILITY
SQL92, SQL99 SERIALIZABLE is the default level in SQL. PostgreSQL does not provide the isolation levels READ UNCOMMITTED and REPEATABLE READ. Because of multiversion concurrency control, the SERIALIZABLE level is not truly serializable. See the User's Guide for details. In SQL there are two other transaction characteristics that can be set with these commands: whether the transaction is read-only and the size of the diagnostics area. Neither of these concepts are supported in PostgreSQL. SQL - Language Statements 2000-11-24 SET TRANSACTION(7)
Man Page