交易 = 邏輯相關操作組成的單一工作單元。兩次成功的 COMMIT 或 ROLLBACK 之間的操作屬同一交易。交易內修改要么全提交、要么全撤銷,故障時自動回滾。
COMMIT → 永久寫入,所有 Session 可見ROLLBACK → 撤銷未提交修改,回到交易起始狀態SAVEPOINT → 設定中間回滾點,ROLLBACK TO SAVEPOINT 僅回退部分操作SET AUTOCOMMIT ON (預設 OFF) → 每條 DML 即時提交COMMIT:提交ROLLBACK:完全回滾SAVEPOINT name:設定回滾點ROLLBACK TO SAVEPOINT name:回退至存檔點鐵律: COMMIT 後不可回滾;ROLLBACK 後欲重做須重新執行 DML。
COMMIT / ROLLBACK修改時對列加鎖,其他 Session 無法修改/加鎖,直至提交或回滾釋放。
UPDATE EMP SET SAL = SAL + 1000 WHERE EMPNO = 7788; -- 1 row updated SELECT ENAME, SAL FROM EMP WHERE EMPNO = 7788; -- SCOTT 4000 COMMIT; -- Commit complete.
大型交易建議設 SAVEPOINT 分段,失敗時可部分回退。