MySQLのトランザクションについてですが、

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

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:--
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答1件)

id:JULY No.1

回答回数966ベストアンサー獲得回数247

ポイント40pt

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

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

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

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

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

id:nekomilk

なるほど。

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

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

2005/09/07 11:44:57

コメントはまだありません

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません