.\\" auto-generated by docbook2man-spec $Revision: 1.2 $
.TH "RELEASE SAVEPOINT" "" "2005-01-19" "SQL - 言語" "SQL コマンド"
.SH NAME
RELEASE SAVEPOINT \- 事前に定義されたセーブポイントを破棄

.SH SYNOPSIS
.sp
.nf
RELEASE [ SAVEPOINT ] \fIsavepoint_name\fR
.sp
.fi
.SH "説明"
.PP
\fBRELEASE SAVEPOINT\fRは、現在のトランザクションで事前に定義されていたセーブポイントを破棄します。
.PP
セーブポイントを破棄すると、ロールバック時点として使用できなくなります。
他にユーザが気付くような動作はありません。
これは、セーブポイント確立後に実行されたコマンドの効果を取消しません。
（これを行う方法はROLLBACK TO SAVEPOINT [\fBrollback_to_savepoint\fR(l)]を参照してください。）
不要になったセーブポイントを破棄することにより、システムはトランザクションの終了前に多少のリソースを回収することができます。
.PP
また、\fBRELEASE SAVEPOINT\fRは、指定したセーブポイントが確立した後に確立した全てのセーブポイントを破棄します。
.SH "パラメータ"
.TP
\fB\fIsavepoint_name\fB\fR
破棄するセーブポイントの名前です。
.SH "注釈"
.PP
事前に定義されていないセーブポイント名を指定するとエラーになります。
.PP
トランザクションがアボート状態の時には、セーブポイントを解放することはできません。
.PP
同じ名前で複数のセーブポイントが存在した場合、最も最近に定義されたセーブポイントが解放されます。
.SH "例"
.PP
セーブポイントを確立し、後に破棄します。
.sp
.nf
BEGIN;
    INSERT INTO table1 VALUES (3);
    SAVEPOINT my_savepoint;
    INSERT INTO table1 VALUES (4);
    RELEASE SAVEPOINT my_savepoint;
COMMIT;
.sp
.fi
上のトランザクションでは3と4が挿入されます。
.SH "互換性"
.PP
このコマンドはSQL:2003標準に準拠しています。
SQL:2003標準では、SAVEPOINTは必須であると規定しています。
PostgreSQLではSAVEPOINTキーワードを省略することができます。
.SH "関連項目"
BEGIN [\fBbegin\fR(l)], COMMIT [\fBcommit\fR(l)], ROLLBACK [\fBrollback\fR(l)], ROLLBACK TO SAVEPOINT [\fBrollback_to_savepoint\fR(l)], SAVEPOINT [\fBsavepoint\fR(l)]
