---
name: "set_constraints"
section: "7l"
platform: "linux"
package: "postgresql"
version: "7.2.1-2woody8"
release: "Debian 3.0 (Woody)"
platforms: ["linux"]
url: "https://new.carta.tech/set_constraints/7l"
---

# set\_constraints(7l)

set the constraint mode of the current transaction

## NAME

SET CONSTRAINTS - set the constraint mode of the current transaction

## SYNOPSIS

```
SET CONSTRAINTS { ALL | constraint [, ...] } { DEFERRED | IMMEDIATE }

```

## DESCRIPTION

**SET CONSTRAINTS** sets the behavior of constraint evaluation in the current transaction. In **IMMEDIATE** mode, constraints are checked at the end of each statement. In **DEFERRED** mode, constraints are not checked until transaction commit.

Upon creation, a constraint is always give one of three characteristics: **INITIALLY DEFERRED**, **INITIALLY IMMEDIATE DEFERRABLE**, or **INITIALLY IMMEDIATE NOT DEFERRABLE**. The third class is not affected by the **SET CONSTRAINTS** command.

Currently, only foreign key constraints are affected by this setting. Check and unique constraints are always effectively initially immediate not deferrable.

## COMPATIBILITY

### SQL92, SQL99

**SET CONSTRAINT** is defined in SQL92 and SQL99.
