.\" auto-generated by docbook2man-spec $Revision: 1.1 $
.TH "SET CONSTRAINTS" "7" "2003-11-02" "SQL - Language Statements" "SQL Commands"
.SH NAME
SET CONSTRAINTS \- 設定當前事務的約束模式

.SH SYNOPSIS
.sp
.nf
SET CONSTRAINTS { ALL | \fIname\fR [, ...] } { DEFERRED | IMMEDIATE }
.sp
.fi
.SH "DESCRIPTION 描述"
.PP
\fBSET CONSTRAINTS\fR 設定當前事務裡的約束運算的特性。 在 IMMEDIATE 模式下,約束是在每條語句後面進行檢查的。 在 DEFERRED 模式下,一直到事務提交時才檢查約束。
.PP
 在你把約束的模式修改成 IMMEDIATE 之後,新的約束模式是反作用式地生效的: 任何尚在等待的,需要在事務結束檢查地資料修改的約束(在使用 DEFERRED 的時候)都將在執行 SET CONSTRAINTS  命令的時候馬上檢查。
.PP
 從建立的時候開始,一個約束總是表現為下面三個特性之一: INITIALLY DEFERRED,
INITIALLY IMMEDIATE DEFERRABLE, 或
INITIALLY IMMEDIATE NOT DEFERRABLE。 第三個特性不會受 SET CONSTRAINTS影響。
.PP
 目前,只有外來鍵約束被這個設定影響。檢查和唯一約束總是立即檢查的而不是可推遲的。
.SH "NOTES 注意"
.PP
 這個命令只在當前事務裡修改約束的行為。因此,如果你在事務塊外面 (BEGIN/COMMIT 對)執行這個命令, 它將顯得沒有任何作用那樣。如果你希望不在每個事務中發出 SET CONSTRAINTS 也能修改約束的行為, 那麼在建立這些約束的時候宣告 INITIALLY DEFERRED 或者 INITIALLY IMMEDIATE。
.SH "COMPATIBILITY 相容性"
.PP
 這條命令與 SQL 標準裡定義的行為相容,只不過,在 PostgreSQL 裡,它只適用於外來鍵約束。
.SH "譯者"
.B Postgresql 中文網站
.B 何偉平 <laser@pgsqldb.org>
.SH "跋"
.br
本頁面中文版由中文 man 手冊頁計劃提供。
.br
中文 man 手冊頁計劃:\fBhttps://github.com/man-pages-zh/manpages-zh\fR