from electron 2 web

インターネットのリソースを無駄遣いして検索におけるUXを下げてごめんなさい

圧倒的文章力のNASAでゴミみたいなチラ裏のようなメモを量産してしまい全ての"Web開発者"にごめんなさい

oracleのトランザクション、コミット、セーブポイント、など

データ復元やなどバージョンコントロール系の勉強ログ。 初心者なので間違いがあるかもしれない。。。

トランザクション

トランザクションはSELECTを除くDMLを扱うときの最小単位。
トランザクションDMLで始まり、!DMLで終わる
(DML,XXX,XXX,XXX,!DML)←ここまでがトランザクション
トランザクションにはSET TRANSACTION NAME トランザクションで名前を設定できる。
トランザクションは明示的コミット(COMMIT文を使う、またはROLLBCK文を使う)
または暗黙のコミット(DCL文やDDL文、初心者のうちは!DML文と考えたほうが良さそうだ)でコミットされる。
トランザクションはコミットされるまでDBに適用されていない
コミットされるまではDBに適用されない←大事なことなので2回言いました。
俺も最初驚いた。まあ実験してないからほんとに正しいとは言えないけど。
トランザクションは原始的(基本情報でACIDとかやったじゃん?あれのA)

そのトランザクションをさらに分けるのがセーブポイント(あれ?原始性無いじゃんw)
P.S.:セーブポイントまで戻ってもそもそもまだそのデータが適用(コミット)されていないため原始性とは関係ないそうです。
オラクルマスタープラチナの大先生から聞いたので間違いない。
プラチナレベルはマジでヤバイ。神。
SAVEPOINT セーブポイント名
セーブポイントまで戻るときは ROLLBACK TO セーブポイント名

UNDO表

コミットした後、いくつかコマンドを打って戻る必要があるときROLLBACKを打てば戻るというのを説明した。
ロールバックするときその手順をoracleはUNDO表を使って戻す。
トランザクションが始まってからいちいち履歴をUNDO表のレコードとして残す。だから戻ることができるのだ。