~ubuntu-branches/ubuntu/oneiric/postgresql-9.1/oneiric-security

« back to all changes in this revision

Viewing changes to doc/src/sgml/html/sql-begin.html

  • Committer: Bazaar Package Importer
  • Author(s): Martin Pitt
  • Date: 2011-05-11 10:41:53 UTC
  • Revision ID: james.westby@ubuntu.com-20110511104153-psbh2o58553fv1m0
Tags: upstream-9.1~beta1
ImportĀ upstreamĀ versionĀ 9.1~beta1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 
2
<HTML
 
3
><HEAD
 
4
><TITLE
 
5
>BEGIN</TITLE
 
6
><META
 
7
NAME="GENERATOR"
 
8
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 
9
REV="MADE"
 
10
HREF="mailto:pgsql-docs@postgresql.org"><LINK
 
11
REL="HOME"
 
12
TITLE="PostgreSQL 9.1beta1 Documentation"
 
13
HREF="index.html"><LINK
 
14
REL="UP"
 
15
TITLE="SQL Commands"
 
16
HREF="sql-commands.html"><LINK
 
17
REL="PREVIOUS"
 
18
TITLE="ANALYZE"
 
19
HREF="sql-analyze.html"><LINK
 
20
REL="NEXT"
 
21
TITLE="CHECKPOINT"
 
22
HREF="sql-checkpoint.html"><LINK
 
23
REL="STYLESHEET"
 
24
TYPE="text/css"
 
25
HREF="stylesheet.css"><META
 
26
HTTP-EQUIV="Content-Type"
 
27
CONTENT="text/html; charset=ISO-8859-1"><META
 
28
NAME="creation"
 
29
CONTENT="2011-04-27T21:20:33"></HEAD
 
30
><BODY
 
31
CLASS="REFENTRY"
 
32
><DIV
 
33
CLASS="NAVHEADER"
 
34
><TABLE
 
35
SUMMARY="Header navigation table"
 
36
WIDTH="100%"
 
37
BORDER="0"
 
38
CELLPADDING="0"
 
39
CELLSPACING="0"
 
40
><TR
 
41
><TH
 
42
COLSPAN="5"
 
43
ALIGN="center"
 
44
VALIGN="bottom"
 
45
><A
 
46
HREF="index.html"
 
47
>PostgreSQL 9.1beta1 Documentation</A
 
48
></TH
 
49
></TR
 
50
><TR
 
51
><TD
 
52
WIDTH="10%"
 
53
ALIGN="left"
 
54
VALIGN="top"
 
55
><A
 
56
TITLE="ANALYZE"
 
57
HREF="sql-analyze.html"
 
58
ACCESSKEY="P"
 
59
>Prev</A
 
60
></TD
 
61
><TD
 
62
WIDTH="10%"
 
63
ALIGN="left"
 
64
VALIGN="top"
 
65
><A
 
66
TITLE="ANALYZE"
 
67
HREF="sql-analyze.html"
 
68
>Fast Backward</A
 
69
></TD
 
70
><TD
 
71
WIDTH="60%"
 
72
ALIGN="center"
 
73
VALIGN="bottom"
 
74
></TD
 
75
><TD
 
76
WIDTH="10%"
 
77
ALIGN="right"
 
78
VALIGN="top"
 
79
><A
 
80
TITLE="CHECKPOINT"
 
81
HREF="sql-checkpoint.html"
 
82
>Fast Forward</A
 
83
></TD
 
84
><TD
 
85
WIDTH="10%"
 
86
ALIGN="right"
 
87
VALIGN="top"
 
88
><A
 
89
TITLE="CHECKPOINT"
 
90
HREF="sql-checkpoint.html"
 
91
ACCESSKEY="N"
 
92
>Next</A
 
93
></TD
 
94
></TR
 
95
></TABLE
 
96
><HR
 
97
ALIGN="LEFT"
 
98
WIDTH="100%"></DIV
 
99
><H1
 
100
><A
 
101
NAME="SQL-BEGIN"
 
102
></A
 
103
>BEGIN</H1
 
104
><DIV
 
105
CLASS="REFNAMEDIV"
 
106
><A
 
107
NAME="AEN63092"
 
108
></A
 
109
><H2
 
110
>Name</H2
 
111
>BEGIN&nbsp;--&nbsp;start a transaction block</DIV
 
112
><DIV
 
113
CLASS="REFSYNOPSISDIV"
 
114
><A
 
115
NAME="AEN63097"
 
116
></A
 
117
><H2
 
118
>Synopsis</H2
 
119
><PRE
 
120
CLASS="SYNOPSIS"
 
121
>BEGIN [ WORK | TRANSACTION ] [ <TT
 
122
CLASS="REPLACEABLE"
 
123
><I
 
124
>transaction_mode</I
 
125
></TT
 
126
> [, ...] ]
 
127
 
 
128
<SPAN
 
129
CLASS="phrase"
 
130
><SPAN
 
131
CLASS="PHRASE"
 
132
>where <TT
 
133
CLASS="REPLACEABLE"
 
134
><I
 
135
>transaction_mode</I
 
136
></TT
 
137
> is one of:</SPAN
 
138
></SPAN
 
139
>
 
140
 
 
141
    ISOLATION LEVEL { SERIALIZABLE | REPEATABLE READ | READ COMMITTED | READ UNCOMMITTED }
 
142
    READ WRITE | READ ONLY
 
143
    [ NOT ] DEFERRABLE</PRE
 
144
></DIV
 
145
><DIV
 
146
CLASS="REFSECT1"
 
147
><A
 
148
NAME="AEN63102"
 
149
></A
 
150
><H2
 
151
>Description</H2
 
152
><P
 
153
>   <TT
 
154
CLASS="COMMAND"
 
155
>BEGIN</TT
 
156
> initiates a transaction block, that is,
 
157
   all statements after a <TT
 
158
CLASS="COMMAND"
 
159
>BEGIN</TT
 
160
> command will be
 
161
   executed in a single transaction until an explicit <A
 
162
HREF="sql-commit.html"
 
163
>COMMIT</A
 
164
> or <A
 
165
HREF="sql-rollback.html"
 
166
>ROLLBACK</A
 
167
> is given.
 
168
   By default (without <TT
 
169
CLASS="COMMAND"
 
170
>BEGIN</TT
 
171
>),
 
172
   <SPAN
 
173
CLASS="PRODUCTNAME"
 
174
>PostgreSQL</SPAN
 
175
> executes
 
176
   transactions in <SPAN
 
177
CLASS="QUOTE"
 
178
>"autocommit"</SPAN
 
179
> mode, that is, each
 
180
   statement is executed in its own transaction and a commit is
 
181
   implicitly performed at the end of the statement (if execution was
 
182
   successful, otherwise a rollback is done).
 
183
  </P
 
184
><P
 
185
>   Statements are executed more quickly in a transaction block, because
 
186
   transaction start/commit requires significant CPU and disk
 
187
   activity. Execution of multiple statements inside a transaction is
 
188
   also useful to ensure consistency when making several related changes:
 
189
   other sessions will be unable to see the intermediate states
 
190
   wherein not all the related updates have been done.
 
191
  </P
 
192
><P
 
193
>   If the isolation level, read/write mode, or deferrable mode is specified, the new
 
194
   transaction has those characteristics, as if
 
195
   <A
 
196
HREF="sql-set-transaction.html"
 
197
>SET TRANSACTION</A
 
198
>
 
199
   was executed.
 
200
  </P
 
201
></DIV
 
202
><DIV
 
203
CLASS="REFSECT1"
 
204
><A
 
205
NAME="AEN63115"
 
206
></A
 
207
><H2
 
208
>Parameters</H2
 
209
><P
 
210
></P
 
211
><DIV
 
212
CLASS="VARIABLELIST"
 
213
><DL
 
214
><DT
 
215
><TT
 
216
CLASS="LITERAL"
 
217
>WORK</TT
 
218
><BR><TT
 
219
CLASS="LITERAL"
 
220
>TRANSACTION</TT
 
221
></DT
 
222
><DD
 
223
><P
 
224
>      Optional key words. They have no effect.
 
225
     </P
 
226
></DD
 
227
></DL
 
228
></DIV
 
229
><P
 
230
>   Refer to <A
 
231
HREF="sql-set-transaction.html"
 
232
>SET TRANSACTION</A
 
233
> for information on the meaning
 
234
   of the other parameters to this statement.
 
235
  </P
 
236
></DIV
 
237
><DIV
 
238
CLASS="REFSECT1"
 
239
><A
 
240
NAME="AEN63127"
 
241
></A
 
242
><H2
 
243
>Notes</H2
 
244
><P
 
245
>   <A
 
246
HREF="sql-start-transaction.html"
 
247
>START TRANSACTION</A
 
248
> has the same functionality
 
249
   as <TT
 
250
CLASS="COMMAND"
 
251
>BEGIN</TT
 
252
>.
 
253
  </P
 
254
><P
 
255
>   Use <A
 
256
HREF="sql-commit.html"
 
257
>COMMIT</A
 
258
> or
 
259
   <A
 
260
HREF="sql-rollback.html"
 
261
>ROLLBACK</A
 
262
>
 
263
   to terminate a transaction block.
 
264
  </P
 
265
><P
 
266
>   Issuing <TT
 
267
CLASS="COMMAND"
 
268
>BEGIN</TT
 
269
> when already inside a transaction block will
 
270
   provoke a warning message.  The state of the transaction is not affected.
 
271
   To nest transactions within a transaction block, use savepoints
 
272
   (see <A
 
273
HREF="sql-savepoint.html"
 
274
>SAVEPOINT</A
 
275
>).
 
276
  </P
 
277
><P
 
278
>   For reasons of backwards compatibility, the commas between successive
 
279
   <TT
 
280
CLASS="REPLACEABLE"
 
281
><I
 
282
>transaction_modes</I
 
283
></TT
 
284
> can be
 
285
   omitted.
 
286
  </P
 
287
></DIV
 
288
><DIV
 
289
CLASS="REFSECT1"
 
290
><A
 
291
NAME="AEN63140"
 
292
></A
 
293
><H2
 
294
>Examples</H2
 
295
><P
 
296
>   To begin a transaction block:
 
297
 
 
298
</P><PRE
 
299
CLASS="PROGRAMLISTING"
 
300
>BEGIN;</PRE
 
301
><P>
 
302
  </P
 
303
></DIV
 
304
><DIV
 
305
CLASS="REFSECT1"
 
306
><A
 
307
NAME="AEN63144"
 
308
></A
 
309
><H2
 
310
>Compatibility</H2
 
311
><P
 
312
>   <TT
 
313
CLASS="COMMAND"
 
314
>BEGIN</TT
 
315
> is a <SPAN
 
316
CLASS="PRODUCTNAME"
 
317
>PostgreSQL</SPAN
 
318
>
 
319
   language extension.  It is equivalent to the SQL-standard command
 
320
   <A
 
321
HREF="sql-start-transaction.html"
 
322
>START TRANSACTION</A
 
323
>, whose reference page
 
324
   contains additional compatibility information.
 
325
  </P
 
326
><P
 
327
>   The <TT
 
328
CLASS="LITERAL"
 
329
>DEFERRABLE</TT
 
330
>
 
331
   <TT
 
332
CLASS="REPLACEABLE"
 
333
><I
 
334
>transaction_mode</I
 
335
></TT
 
336
>
 
337
   is a <SPAN
 
338
CLASS="PRODUCTNAME"
 
339
>PostgreSQL</SPAN
 
340
> language extension.
 
341
  </P
 
342
><P
 
343
>   Incidentally, the <TT
 
344
CLASS="LITERAL"
 
345
>BEGIN</TT
 
346
> key word is used for a
 
347
   different purpose in embedded SQL. You are advised to be careful
 
348
   about the transaction semantics when porting database applications.
 
349
  </P
 
350
></DIV
 
351
><DIV
 
352
CLASS="REFSECT1"
 
353
><A
 
354
NAME="AEN63156"
 
355
></A
 
356
><H2
 
357
>See Also</H2
 
358
><A
 
359
HREF="sql-commit.html"
 
360
>COMMIT</A
 
361
>, <A
 
362
HREF="sql-rollback.html"
 
363
>ROLLBACK</A
 
364
>, <A
 
365
HREF="sql-start-transaction.html"
 
366
>START TRANSACTION</A
 
367
>, <A
 
368
HREF="sql-savepoint.html"
 
369
>SAVEPOINT</A
 
370
></DIV
 
371
><DIV
 
372
CLASS="NAVFOOTER"
 
373
><HR
 
374
ALIGN="LEFT"
 
375
WIDTH="100%"><TABLE
 
376
SUMMARY="Footer navigation table"
 
377
WIDTH="100%"
 
378
BORDER="0"
 
379
CELLPADDING="0"
 
380
CELLSPACING="0"
 
381
><TR
 
382
><TD
 
383
WIDTH="33%"
 
384
ALIGN="left"
 
385
VALIGN="top"
 
386
><A
 
387
HREF="sql-analyze.html"
 
388
ACCESSKEY="P"
 
389
>Prev</A
 
390
></TD
 
391
><TD
 
392
WIDTH="34%"
 
393
ALIGN="center"
 
394
VALIGN="top"
 
395
><A
 
396
HREF="index.html"
 
397
ACCESSKEY="H"
 
398
>Home</A
 
399
></TD
 
400
><TD
 
401
WIDTH="33%"
 
402
ALIGN="right"
 
403
VALIGN="top"
 
404
><A
 
405
HREF="sql-checkpoint.html"
 
406
ACCESSKEY="N"
 
407
>Next</A
 
408
></TD
 
409
></TR
 
410
><TR
 
411
><TD
 
412
WIDTH="33%"
 
413
ALIGN="left"
 
414
VALIGN="top"
 
415
>ANALYZE</TD
 
416
><TD
 
417
WIDTH="34%"
 
418
ALIGN="center"
 
419
VALIGN="top"
 
420
><A
 
421
HREF="sql-commands.html"
 
422
ACCESSKEY="U"
 
423
>Up</A
 
424
></TD
 
425
><TD
 
426
WIDTH="33%"
 
427
ALIGN="right"
 
428
VALIGN="top"
 
429
>CHECKPOINT</TD
 
430
></TR
 
431
></TABLE
 
432
></DIV
 
433
></BODY
 
434
></HTML
 
435
>
 
 
b'\\ No newline at end of file'