{category}

MySQL - セーブポイント

SAVEPOINT

セーブポイント(トランザクションと同時実行制御

意味 トランザクション内の中間地点


SAVEPOINTとは?

SAVEPOINTは、トランザクション内に設定できる中間地点です。これにより、トランザクションの一部だけを元に戻すことができます。複雑な処理を行う際に便利な機能です。

SAVEPOINTの具体的な使い方

部分的ロールバック例

START TRANSACTION;
INSERT INTO users (name) VALUES ('Alice');
SAVEPOINT sp1;
INSERT INTO users (name) VALUES ('Bob');
SELECT * FROM users;
ROLLBACK TO SAVEPOINT sp1;
SELECT * FROM users;
COMMIT;

👇出力結果

Bob追加後: Alice, Bob
ROLLBACK TO SAVEPOINT後: Alice

この例では、最初にAliceを追加し、セーブポイントsp1を設定しています。その後、Bobを追加していますが、ROLLBACK TO SAVEPOINTによりsp1の状態に戻るので、最終的にはAliceだけが追加された状態になります。SELECTステートメントで各段階の結果を確認できます。

SAVEPOINTに関するよくある質問

Q. SAVEPOINTの利点は?
A. SAVEPOINTの主な利点は:1) トランザクションの一部だけを取り消せる、2) 複雑な処理を段階的に管理できる、3) エラーハンドリングが柔軟になる、4) 大規模なトランザクションを小さな単位に分割できる。
Q. SAVEPOINTの制限は?
A. SAVEPOINTの制限には:1) トランザクション内でのみ有効、2) COMMITするとすべてのSAVEPOINTが無効になる、3) 名前の重複に注意が必要、4) データベース製品によってはサポートされていない場合がある、などがあります。
Q. SAVEPOINTは永続的?
A. いいえ、SAVEPOINTは永続的ではありません。SAVEPOINTはトランザクション内でのみ有効で、トランザクションがコミットされるか、ロールバックされると消滅します。また、明示的にRELEASE SAVEPOINTで削除することもできます。

SAVEPOINTが学べる書籍の紹介

「プログラミング単語帳」を使って、プログラミングの単語を英単語のように学習してみませんか?
プログラミング単語帳には、MySQLのSAVEPOINTやSERIALIZABLE、READ UNCOMMITTED、REPEATABLE READ、などのような実務でよく使われる単語が数百以上収録されています。
この書籍には、プログラミングの単語の意味や読み方、単語の使い方がわかる例文などが掲載されており、いつでもどこでもプログラミングの学習ができます。

よく使われる単語にだけ絞って学習することができるので、効率的にプログラミングが学習できます。

1日5分の暗記でプログラミンが身に付く!プログラミング単語帳 公式ストアで発売中!

HTML編、CSS編、JavaScript編、PHP編、Ruby編、その他単語編の6シリーズ分が公式ストアにて販売中です。気になった方はぜひ購入してみてください。


MySQLを学べる「プログラミング単語帳」アプリ

プログラミング単語帳がアプリになりました!MySQLはもちろん、10種類のプログラミング言語の中から、よく使われる単語をスマホで学習できます。

収録単語は2,000単語以上!
現在は、HTML、CSS、JavaScirpt、PHP、Laravel、Ruby、Python、MySQL、Linux、など10カテゴリーの単語帳が1つのアプリに収録されています。

いつでも、どこでも、隙間時間を有効活用して、プログラミングを効率的に学べるので、ぜひダウンロードしてみてください。

2024年7月アップデート情報:「Laravel」カテゴリーが追加されましました!

2024年8月アップデート情報:「MySQL」「Linux」カテゴリーが追加されましました!


関連するそのほかの単語

SERIALIZABLE

最も高い分離レベル

種類: 分離レベル

READ UNCOMMITTED

最も低い分離レベル

種類: 分離レベル

REPEATABLE READ

読取一貫性を保証

種類: 分離レベル

CREATE INDEX

インデックスの作成

種類: インデックス管理

Correlated SubQuery

外部クエリと連動するサブクエリ

種類: 高度なクエリ技術