diff options
Diffstat (limited to 'doc/src/sgml/ref/begin.sgml')
| -rw-r--r-- | doc/src/sgml/ref/begin.sgml | 193 |
1 files changed, 193 insertions, 0 deletions
diff --git a/doc/src/sgml/ref/begin.sgml b/doc/src/sgml/ref/begin.sgml new file mode 100644 index 0000000000..9939a9df6e --- /dev/null +++ b/doc/src/sgml/ref/begin.sgml @@ -0,0 +1,193 @@ +<REFENTRY ID="SQL-BEGINWORK-1"> + <REFMETA> + <REFENTRYTITLE> + BEGIN WORK + </REFENTRYTITLE> + <REFMISCINFO>SQL - Language Statements</REFMISCINFO> + </REFMETA> + <REFNAMEDIV> + <REFNAME> + BEGIN WORK + </REFNAME> + <REFPURPOSE> + Begins a transaction + </REFPURPOSE> + + + <REFSYNOPSISDIV> + <REFSYNOPSISDIVINFO> + <DATE>1998-04-15</DATE> + </REFSYNOPSISDIVINFO> + <SYNOPSIS> + BEGIN { WORK | TRANSACTION } + </SYNOPSIS> + + <REFSECT2 ID="R2-SQL-BEGINWORK-1"> + <REFSECT2INFO> + <DATE>1998-04-15</DATE> + </REFSECT2INFO> + <TITLE> + Inputs + </TITLE> + <PARA> + </PARA> + <VARIABLELIST> + <VARLISTENTRY> + <TERM> + <ReturnValue> + None + </ReturnValue> + </TERM> + <LISTITEM> + <para></para> + </LISTITEM> + </varlistentry> + </VARIABLELIST> + </REFSECT2> + + <REFSECT2 ID="R2-SQL-BEGINWORK-2"> + <REFSECT2INFO> + <DATE>1998-04-15</DATE> + </REFSECT2INFO> + <TITLE> + Outputs + </TITLE> + <PARA> + </PARA> + <VARIABLELIST> + <VARLISTENTRY> + <TERM> + status + </TERM> + <LISTITEM> + <PARA> + <VARIABLELIST> + <VARLISTENTRY> + <TERM> + <ReturnValue>BEGIN</ReturnValue> + </TERM> + <LISTITEM> + <PARA> + This signifies that a new transaction has been started. + </PARA> + </LISTITEM> + </VARLISTENTRY> + <VARLISTENTRY> + <TERM> + <ReturnValue> + NOTICE: BeginTransactionBlock and not in default state + </ReturnValue> + </TERM> + <LISTITEM> + <PARA> + This indicates that a transaction was already in progress. + <comment> + What happens to command queries already run + in the transaction? Does this have no effect, or does + it restart the transaction? + </comment> + </PARA> + </LISTITEM> + </VARLISTENTRY> + </variablelist> + </para> + </LISTITEM> + </VARLISTENTRY> + </VARIABLELIST> + </REFSECT2> + </REFSYNOPSISDIV> + + <REFSECT1 ID="R1-SQL-BEGINWORK-1"> + <REFSECT1INFO> + <DATE>1998-04-15</DATE> + </REFSECT1INFO> + <TITLE> + Description + </TITLE> + <para> + BEGIN begins a user transaction which PostgreSQL will + guarantee is serialisable with respect to all concurrently + executing transactions. PostgreSQL uses two-phase locking + to perform this task. If the transaction is committed, + PostgreSQL will ensure either that all updates are done orelse + that none of + them are done. Transactions have the standard ACID + (atomic, consistent, isolatable, and durable) property. + </para> + + <REFSECT2 ID="R2-SQL-BEGINWORK-3"> + <REFSECT2INFO> + <DATE>1998-04-15</DATE> + </REFSECT2INFO> + <TITLE> + Notes + </TITLE> + <PARA> + The keyword TRANSACTION is just a cosmetic alternative to WORK. + Neither keyword need be specified. + </PARA> + + <PARA> + BEGIN statement is a PostgreSQL language extension. + </PARA> + + <PARA> + Refer to the LOCK statement for further information about locking + tables inside a transaction. + </PARA> + + <PARA> + Use COMMIT or ROLLBACK to terminate a transaction. + </PARA> + </REFSECT2> + + <REFSECT1 ID="R1-SQL-BEGINWORK-2"> + <TITLE> + Usage + </TITLE> + <PARA>To begin a user transaction: + </PARA> + <ProgramListing> + BEGIN WORK; + </ProgramListing> + </REFSECT1> + + <REFSECT1 ID="R1-SQL-BEGINWORK-3"> + <TITLE> + Compatibility + </TITLE> + <PARA> + </PARA> + + <REFSECT2 ID="R2-SQL-BEGINWORK-4"> + <REFSECT2INFO> + <DATE>1998-04-15</DATE> + </REFSECT2INFO> + <TITLE> + SQL92 + </TITLE> + <PARA> + There is no explicit "BEGIN WORK" in SQL92; transaction initiation + is always implicit and it terminates either with a COMMIT or with + a ROLLBACK statement. + </PARA> + </refsect2> + </refsect1> +</REFENTRY> + +<!-- Keep this comment at the end of the file +Local variables: +mode: sgml +sgml-omittag:t +sgml-shorttag:t +sgml-minimize-attributes:nil +sgml-always-quote-attributes:t +sgml-indent-step:1 +sgml-indent-data:t +sgml-parent-document:nil +sgml-default-dtd-file:"../reference.ced" +sgml-exposed-tags:nil +sgml-local-catalogs:"/usr/lib/sgml/catalog" +sgml-local-ecat-files:nil +End: +--> |
