.\" 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 何偉平 .SH "跋" .br 本頁面中文版由中文 man 手冊頁計劃提供。 .br 中文 man 手冊頁計劃:\fBhttps://github.com/man-pages-zh/manpages-zh\fR