begin.l
上传用户:blenddy
上传日期:2007-01-07
资源大小:6495k
文件大小:2k
源码类别:

数据库系统

开发平台:

Unix_Linux

  1. ." This is -*-nroff-*-
  2. ." XXX standard disclaimer belongs here....
  3. ." $Header: /usr/local/cvsroot/pgsql/src/man/Attic/begin.l,v 1.6 1999/06/11 05:40:18 vadim Exp $
  4. .TH BEGIN SQL 11/05/95 PostgreSQL PostgreSQL
  5. .SH NAME
  6. begin - begins a transaction in chained mode
  7. .SH SYNOPSIS
  8. .nf
  9. fBbeginfP fB[transaction|work]fR
  10. .fi
  11. .SH DESCRIPTION
  12. By default, Postgres executes transactions in unchained mode (also known as
  13. autocommit feature in other DBMSes). In other words, each user statement is
  14. executed in its own transaction and commit is implicit (if execution was
  15. successfull). BEGIN initiates a user transaction in chained mode, i.e. all
  16. user statements after BEGIN command will be executed in single transaction
  17. untill explicit COMMIT, ROLLBACK or execution abort. Statements in chained
  18. mode are executed much faster, because of transaction start/commit requires
  19. significant CPU and disk activity. This mode is also required for
  20. consistency when changing one of related tables.
  21. Default transaction isolation level in Postgres is READ COMMITTED one, when
  22. queries inside transaction see only changes committed before query
  23. execution. So, you have to use SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
  24. command just after BEGIN if you need in better transaction isolation.  In
  25. SERIALIZABLE mode queries will see only changes committed before entire
  26. transaction began (actually, before execution of first DML statement in
  27. serializable transaction).
  28. If the transaction is committed, Postgres will ensure either that all
  29. updates are done or else that none of them are done. Transactions have the
  30. standard ACID (atomic, consistent, isolatable, and durable) property.
  31. fBNotefR: There is no explicit BEGIN command in SQL92; transaction
  32. initiation is always implicit and it terminates either with a COMMIT or with
  33. a ROLLBACK statement (i.e. all transactions are chained). SQL92 also
  34. requires SERIALIZABLE to be default transaction isolation level.
  35. .SH "SEE ALSO"
  36. rollback(l),
  37. commit(l),
  38. set(l),
  39. lock(l).