ok
Direktori : /opt/alt/postgresql11/usr/share/doc/alt-postgresql11-9.2.24/html/ |
Current File : //opt/alt/postgresql11/usr/share/doc/alt-postgresql11-9.2.24/html/rules-status.html |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE >Rules and Command Status</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REV="MADE" HREF="mailto:pgsql-docs@postgresql.org"><LINK REL="HOME" TITLE="PostgreSQL 9.2.24 Documentation" HREF="index.html"><LINK REL="UP" TITLE="The Rule System" HREF="rules.html"><LINK REL="PREVIOUS" TITLE="Rules and Privileges" HREF="rules-privileges.html"><LINK REL="NEXT" TITLE="Rules Versus Triggers" HREF="rules-triggers.html"><LINK REL="STYLESHEET" TYPE="text/css" HREF="stylesheet.css"><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1"><META NAME="creation" CONTENT="2017-11-06T22:43:11"></HEAD ><BODY CLASS="SECT1" ><DIV CLASS="NAVHEADER" ><TABLE SUMMARY="Header navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TH COLSPAN="5" ALIGN="center" VALIGN="bottom" ><A HREF="index.html" >PostgreSQL 9.2.24 Documentation</A ></TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="top" ><A TITLE="Rules and Privileges" HREF="rules-privileges.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="10%" ALIGN="left" VALIGN="top" ><A HREF="rules.html" ACCESSKEY="U" >Up</A ></TD ><TD WIDTH="60%" ALIGN="center" VALIGN="bottom" >Chapter 37. The Rule System</TD ><TD WIDTH="20%" ALIGN="right" VALIGN="top" ><A TITLE="Rules Versus Triggers" HREF="rules-triggers.html" ACCESSKEY="N" >Next</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><DIV CLASS="SECT1" ><H1 CLASS="SECT1" ><A NAME="RULES-STATUS" >37.5. Rules and Command Status</A ></H1 ><P > The <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN > server returns a command status string, such as <TT CLASS="LITERAL" >INSERT 149592 1</TT >, for each command it receives. This is simple enough when there are no rules involved, but what happens when the query is rewritten by rules?</P ><P > Rules affect the command status as follows: <P ></P ></P><UL ><LI ><P > If there is no unconditional <TT CLASS="LITERAL" >INSTEAD</TT > rule for the query, then the originally given query will be executed, and its command status will be returned as usual. (But note that if there were any conditional <TT CLASS="LITERAL" >INSTEAD</TT > rules, the negation of their qualifications will have been added to the original query. This might reduce the number of rows it processes, and if so the reported status will be affected.) </P ></LI ><LI ><P > If there is any unconditional <TT CLASS="LITERAL" >INSTEAD</TT > rule for the query, then the original query will not be executed at all. In this case, the server will return the command status for the last query that was inserted by an <TT CLASS="LITERAL" >INSTEAD</TT > rule (conditional or unconditional) and is of the same command type (<TT CLASS="COMMAND" >INSERT</TT >, <TT CLASS="COMMAND" >UPDATE</TT >, or <TT CLASS="COMMAND" >DELETE</TT >) as the original query. If no query meeting those requirements is added by any rule, then the returned command status shows the original query type and zeroes for the row-count and OID fields. </P ></LI ></UL ><P> (This system was established in <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN > 7.3. In versions before that, the command status might show different results when rules exist.)</P ><P > The programmer can ensure that any desired <TT CLASS="LITERAL" >INSTEAD</TT > rule is the one that sets the command status in the second case, by giving it the alphabetically last rule name among the active rules, so that it gets applied last.</P ></DIV ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE SUMMARY="Footer navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="rules-privileges.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="index.html" ACCESSKEY="H" >Home</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="rules-triggers.html" ACCESSKEY="N" >Next</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >Rules and Privileges</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="rules.html" ACCESSKEY="U" >Up</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >Rules Versus Triggers</TD ></TR ></TABLE ></DIV ></BODY ></HTML >