⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 set_constraints.sgml

📁 PostgreSQL 8.1.4的源码 适用于Linux下的开源数据库系统
💻 SGML
字号:
<!-- $PostgreSQL: pgsql/doc/src/sgml/ref/set_constraints.sgml,v 1.12 2004/09/10 18:39:53 tgl Exp $ --><refentry id="SQL-SET-CONSTRAINTS"> <refmeta>  <refentrytitle id="SQL-SET-CONSTRAINTS-title">SET CONSTRAINTS</refentrytitle>  <refmiscinfo>SQL - Language Statements</refmiscinfo> </refmeta> <refnamediv>  <refname>SET CONSTRAINTS</refname>  <refpurpose>set constraint checking modes for the current transaction</refpurpose> </refnamediv> <indexterm zone="sql-set-constraints">  <primary>SET CONSTRAINTS</primary> </indexterm> <refsynopsisdiv><synopsis>SET CONSTRAINTS { ALL | <replaceable class="parameter">name</replaceable> [, ...] } { DEFERRED | IMMEDIATE }</synopsis> </refsynopsisdiv> <refsect1>  <title>Description</title>  <para>   <command>SET CONSTRAINTS</command> sets the behavior of constraint   checking within the current transaction. <literal>IMMEDIATE</literal>   constraints are checked at the end of each   statement. <literal>DEFERRED</literal> constraints are not checked until   transaction commit.  Each constraint has its own   <literal>IMMEDIATE</literal> or <literal>DEFERRED</literal> mode.  </para>  <para>   Upon creation, a constraint is given one of three   characteristics: <literal>DEFERRABLE INITIALLY DEFERRED</literal>,   <literal>DEFERRABLE INITIALLY IMMEDIATE</literal>, or   <literal>NOT DEFERRABLE</literal>. The third   class is always <literal>IMMEDIATE</literal> and is not affected by the   <command>SET CONSTRAINTS</command> command.  The first two classes start   every transaction in the indicated mode, but their behavior can be changed   within a transaction by <command>SET CONSTRAINTS</command>.  </para>  <para>   <command>SET CONSTRAINTS</command> with a list of constraint names changes   the mode of just those constraints (which must all be deferrable).  If   there are multiple constraints matching any given name, all are affected.   <command>SET CONSTRAINTS ALL</command> changes the mode of all deferrable   constraints.  </para>  <para>   When <command>SET CONSTRAINTS</command> changes the mode of a constraint   from <literal>DEFERRED</literal>   to <literal>IMMEDIATE</literal>, the new mode takes effect   retroactively: any outstanding data modifications that would have   been checked at the end of the transaction are instead checked during the   execution of the <command>SET CONSTRAINTS</command> command.   If any such constraint is violated, the <command>SET CONSTRAINTS</command>   fails (and does not change the constraint mode).  Thus, <command>SET   CONSTRAINTS</command> can be used to force checking of constraints to   occur at a specific point in a transaction.  </para>  <para>   Currently, only foreign key constraints are affected by this   setting. Check and unique constraints are always effectively   not deferrable.  </para> </refsect1> <refsect1>  <title>Notes</title>  <para>   This command only alters the behavior of constraints within the   current transaction. Thus, if you execute this command outside of a   transaction block   (<command>BEGIN</command>/<command>COMMIT</command> pair), it will   not appear to have any effect.  </para> </refsect1> <refsect1>  <title>Compatibility</title>  <para>   This command complies with the behavior defined in the SQL   standard, except for the limitation that, in   <productname>PostgreSQL</productname>, it only applies to   foreign-key constraints.  </para>  <para>   The SQL standard says that constraint names appearing in <command>SET   CONSTRAINTS</command> can be schema-qualified.  This is not yet   supported by <productname>PostgreSQL</productname>: the names must   be unqualified, and all constraints matching the command will be   affected no matter which schema they are in.  </para> </refsect1></refentry><!-- Keep this comment at the end of the fileLocal variables:mode:sgmlsgml-omittag:nilsgml-shorttag:tsgml-minimize-attributes:nilsgml-always-quote-attributes:tsgml-indent-step:1sgml-indent-data:tsgml-parent-document:nilsgml-default-dtd-file:"../reference.ced"sgml-exposed-tags:nilsgml-local-catalogs:("/usr/lib/sgml/catalog")sgml-local-ecat-files:nilEnd:-->

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -