.\" 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