.\\" auto-generated by docbook2man-spec $Revision: 1.2 $
.TH "BEGIN" "" "2004-06-19" "SQL - 言語" "SQL コマンド"
.SH NAME
BEGIN \- トランザクションブロックの開始

.SH SYNOPSIS
.sp
.nf
BEGIN [ WORK | TRANSACTION ]
.sp
.fi
.SH "説明"
.PP
\fBBEGIN\fR はトランザクションブロックを初期化します。
つまり、\fBBEGIN\fRコマンドの後の文は全て、明示的な COMMIT [\fBcommit\fR(l)] または ROLLBACK [\fBrollback\fR(l)] が与えられるまで、単一のトランザクションの中で実行されます。
デフォルト(\fBBEGIN\fR無し)では、PostgreSQL はトランザクションを ``自動コミット'' で実行します。
言い換えると、各文はそれ固有のトランザクションの中で実行され、コミットはその文の終わりに暗黙的に実行されます（実行が成功した場合です。 そうでない場合はロールバックされます）。 
.PP
トランザクションブロック内では、文はより迅速に実行されます。
なぜなら、トランザクションの開始/コミットには、CPU とディスクにかなり高い負荷がかかるからです。
トランザクション中の複数の文の実行はまた、複数の関連するテーブルを更新するときに確実に一貫性を保つためにも便利です。
関連する更新がすべて完了していない中間的な状態を、他のセッションからは参照できません。
.SH "パラメータ"
.TP
\fBWORK\fR
.TP
\fBTRANSACTION\fR
省略可能なキーワード。これらは何も効果がありません。
.SH "注釈"
.PP
START TRANSACTION [\fBstart_transaction\fR(l)] には、\fBBEGIN\fR と同じような機能があります。
.PP
トランザクションを終了させるには COMMIT [\fBcommit\fR(l)] か ROLLBACK [\fBrollback\fR(l)] を使用して 下さい。
.PP
トランザクションブロック内で\fBBEGIN\fR を発行すると、警告メッセージが現われます。
トランザクションの状態には影響ありません。
.SH "例"
.PP
トランザクションブロックを始めます。
.sp
.nf
BEGIN;
.sp
.fi
.SH "互換性"
.PP
\fBBEGIN\fR は PostgreSQL の言語拡張です。
標準 SQL には明示的な \fBBEGIN\fR コマンドはありません。 
トランザクションの開始は常に暗黙的で、\fBCOMMIT\fR または \fBROLLBACK\fR 文で終了します。
.PP
利便性のために、多くのリレーショナルデータベースシステムは、自動コミット機能を提供しています。
.PP
偶然ですが、BEGIN というキーワードは埋め込み SQL では異なった目的に使われます。
データベースアプリケーションを移植するときはトランザクションの意味で使用されているのかどうか注意するべきでしょう。
.SH "関連項目"
COMMIT [\fBcommit\fR(l)], ROLLBACK [\fBrollback\fR(l)]
