人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

MySQLのトランザクションについてですが、
「START TRANSACTION、COMMIT、ROLLBACK」と
「SAVEPOINT および ROLLBACK TO SAVEPOINT 」
とでは何が違うのですか?
ぱっと見、savepointを設定して好きな所に戻れる方が便利に見えるのですが。

●質問者: nekomilk
●カテゴリ:コンピュータ
✍キーワード:MySQL トランザクション
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● JULY
●40ポイント

http://dev.mysql.com/doc/mysql/ja/savepoints.html

MySQL 4.1 リファレンスマニュアル :: 6.7.4 SAVEPOINT および ROLLBACK TO SAVEPOINT 構文

savepoint、rollback to savepoint は、1つのトランザクションの中で、任意の点に戻る、

というものです。ですので、start transaction でトランザクションの開始を宣言し、

commit か rollback する前のどこかで savepoint を設定し、rollback to savepoint

で、その場所へ戻る、という使い方になります。トランザクションと無関係に、

戻れる場所を指定できるわけではありません。

http://www.postgresql.jp/document/pg803doc/html/sql-savepoint.ht...

PostgreSQL での例ですが、この例を見ると使い方が分かると思います。

start transaction にあたるのが、この例では begin になります。

◎質問者からの返答

なるほど。

start transactionしてから、細かくロールバックできる地点を指定できるような感じでしょうか。

ありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ