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