Provided by: manpages-zh_1.6.3.2-1_all bug

NAME

       SET CONSTRAINTS - 設置當前事務的約束模式

SYNOPSIS

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

DESCRIPTION 描述

       SET         CONSTRAINTS        設置當前事務裏的約束運算的特性。        在        IMMEDIATE
       模式下,約束是在每條語句後面進行檢查的。 在 DEFERRED 模式下,一直到事務提交時才檢查約束。

        在你把約束的模式修改成          IMMEDIATE          之後,新的約束模式是反作用式地生效的:
       任何尚在等待的,需要在事務結束檢查地數據修改的約束(在使用 DEFERRED 的時候)都將在執行 SET
       CONSTRAINTS  命令的時候馬上檢查。

        從創建的時候開始,一個約束總是表現爲下面三個特性之一:  INITIALLY   DEFERRED,   INITIALLY
       IMMEDIATE  DEFERRABLE,  或  INITIALLY  IMMEDIATE  NOT  DEFERRABLE。  第三個特性不會受  SET
       CONSTRAINTS影響。

        目前,只有外鍵約束被這個設置影響。檢查和唯一約束總是立即檢查的而不是可推遲的。

NOTES 注意

        這個命令只在當前事務裏修改約束的行爲。因此,如果你在事務塊外面             (BEGIN/COMMIT
       對)執行這個命令,  它將顯得沒有任何作用那樣。如果你希望不在每個事務中發出 SET CONSTRAINTS
       也能修改約束的行爲,  那麼在創建這些約束的時候聲明  INITIALLY  DEFERRED   或者   INITIALLY
       IMMEDIATE。

COMPATIBILITY 兼容性

        這條命令與 SQL 標準裏定義的行爲兼容,只不過,在 PostgreSQL 裏,它只適用於外鍵約束。

譯者

       Postgresql 中文網站 何偉平 <laser@pgsqldb.org>

       本頁面中文版由中文 man 手冊頁計劃提供。
       中文 man 手冊頁計劃:https://github.com/man-pages-zh/manpages-zh