SQL DCLシ壹ヨ繝ゥ繝ウ繧カ繧ッ繧キ繝ァ繝ウ

繝医Λ繝ウ繧カ繧ッ繧キ繝ァ繝ウ縺ィ縺ッシ

Trunsaction(蜿門シ)
隍謨ー縺ョ繝ヲ繝シ繧カ繝シ縺悟酔譎ゅ↓シ、シ「繧呈桃菴懊☆繧矩圀縺ォ繝繝シ繧ソ縺ォ荳肴紛蜷医r逋コ逕溘&縺帙↑縺轤コ縺ョ讖溯ス縲
荳莠コ縺ョ繝ヲ繝シ繧カ繝シ縺ョ蜃ヲ逅繧堤「コ螳/蜿匁カ医〒縺阪k縲
Oracle
Commit/RollBack縺ッ蠢鬆医
Commitス曚ommit髢薙′荳縺、縺ョ繝医Λ繝ウ繧カ繧ッ繧キ繝ァ繝ウ

繝医Λ繝ウ繧カ繧ッ繧キ繝ァ繝ウ縺ョ髢句ァ具ス樒オゆコ

BEGIN TRANSACTION

ROLLBACK TRANSACTION/COMMIT TRANSACTION
RollBack;/Commit;
–縺薙%縺九i–

–縺薙%縺セ縺ァ–
RollBack;/Commit;

隱ュ縺ソ蜿悶j縺ョ荳雋ォ諤ァ

證鈴サ吶ョ陦後Ξ繝吶Ν繝ュ繝繧ッ
繧サ繝繧キ繝ァ繝ウ蜊倅ス阪〒荳雋ォ諤ァ縺御ソ晄戟縺輔l繧九
繝励Ο繧ー繝ゥ繝繧定、謨ー襍キ蜍輔☆繧九→蜷御ク遶ッ譛ォ縺ァ繧り、謨ー縺ョ繧サ繝繧キ繝ァ繝ウ縺檎匱逕溘☆繧九

萓1
繝サA縺輔s繧サ繝繧キ繝ァ繝ウ
Select ス (譎る俣縺梧寺縺九k蝣エ蜷茨シ壽囓鮟吶ョ陦後Ξ繝吶Ν繝ュ繝繧ッ)
繝サB縺輔s繧サ繝繧キ繝ァ繝ウ
Update ス ; Commit;
繝サシ。縺輔s
Select ス (蜃ヲ逅邨ゆコ縲B縺輔s蜃ヲ逅縺ッ蜿肴丐縺輔l縺ェ縺)

萓2
繝サA縺輔s繧サ繝繧キ繝ァ繝ウ
Commit;
Update ス 陦ィ1 (1)
繝サB縺輔s繧サ繝繧キ繝ァ繝ウ
Select ス 陦ィ1
(1)縺ョ螟画峩縺ッ蜿門セ励〒縺阪↑縺縲
繝サA縺輔s繧サ繝繧キ繝ァ繝ウ
Commit;
繝サB縺輔s繧サ繝繧キ繝ァ繝ウ
Select ス 陦ィ1
(1)縺ョ螟画峩繧貞叙蠕励〒縺阪k縲

窶サA縺輔s繧サ繝繧キ繝ァ繝ウ縺靴ommit縺輔l繧九∪縺ァ閾ェ蜍慕噪縺ォ繝ュ繝繧ッ縺輔l縺ヲ縺繧九
螟画峩繧らァ莨壹b縺ァ縺阪↑縺縲

譏守、コ逧縺ェ陦後Ξ繝吶Ν繝ュ繝繧ッ
Select 蛻怜錐 From 陦ィ蜷 For Update
Select 蛻怜錐 From 陦ィ蜷 For Update Of 蛻怜錐
蛻怜錐繧呈戟縺、陦ィ繧偵Ο繝繧ッ縺吶k
Select 蛻怜錐 From 陦ィ蜷 For Update NoWait
蟇セ雎。縺梧里縺ォ繝ュ繝繧ッ縺輔l縺ヲ縺繧句エ蜷茨シ壻ス輔b縺励↑縺(隗」謾セ繧貞セ讖溘@縺ェ縺)
Select 蛻怜錐 From 陦ィ蜷 For Update Wait n(遘)
蟇セ雎。縺梧里縺ォ繝ュ繝繧ッ縺輔l縺ヲ縺繧句エ蜷茨シ嗜遘偵Ο繝繧ッ繧貞サカ髟キ縺吶k(隗」謾セ繧貞セ讖溘☆繧)縲

Select譎ゅ↓陦後Ξ繝吶Ν繝ュ繝繧ッ繧呈寺縺代k縲
Select蠕後√◎縺ョ繝繝シ繧ソ縺ォ蟇セ縺励※Update繧呈命縺咏ュ峨ョ蜃ヲ逅繧定。後≧蝣エ蜷医↓菴ソ逕ィ

譏守、コ逧縺ェ繝ュ繝繧ッ縺ョ遶カ蜷
Aシ售elect ス For Update 縺輔l縺ヲ縺繧九Ξ繧ウ繝シ繝峨↓蟇セ縺励※縲
蛻・縺ョ繝医Λ繝ウ繧カ繧ッ繧キ繝ァ繝ウ縺
Bシ售elect ス For Update 縺励◆蝣エ蜷

Bシ售elect ス For Update NOWAIT
謗剃サ悶お繝ゥ繝シ
Bシ售elect ス For Update
A縺ョ繝ュ繝繧ッ縺瑚ァ」髯、縺輔l繧九∪縺ァ蠕縺。邯壹¢繧
Bシ售elect ス For Update WAIT 10
A縺ョ繝ュ繝繧ッ縺瑚ァ」髯、縺輔l繧九∪縺ァ10遘帝俣蠕縺、縲
10遘貞セ後∵賜莉悶お繝ゥ繝シ
Bシ售elect ス
謗剃サ悶お繝ゥ繝シ辟。縺

繧サ繝シ繝悶昴う繝ウ繝(Oracle)

窶サ繧サ繝シ繝悶昴う繝ウ繝井ス懈
SavePoint 繧サ繝シ繝門錐

窶サ繧サ繝シ繝悶昴う繝ウ繝井サ・髯阪ョ繝医Λ繝ウ繧カ繧ッ繧キ繝ァ繝ウ繧貞叙豸
縺薙ョ蜃ヲ逅繧定。後▲縺ヲ繧ゅそ繝シ繝悶昴う繝ウ繝医ッ谿九k縲
RollBack To SavePoint 繧サ繝シ繝門錐

Commit;
(1) Insert ス
(2) SavePoint A;
(3) Insert ス
(4) RollBack To SavePoint A; 窶サ(3)縺ョ蜿匁カ
(5) Insert ス
(6) Commit; (1)(5)縺ョ遒コ螳
(7) Insert ス
(8) RollBack; (7)縺ョ蜿匁カ

繧サ繝シ繝悶昴う繝ウ繝医r謖螳壹@縺ヲ縺ョCommit縺ッ縺ァ縺阪↑縺縲
Commit/RollBack螳溯。後↓繧医▲縺ヲ繧サ繝シ繝悶昴う繝ウ繝医ッ蜑企勁縺輔l繧九

證鈴サ吶ョCommit(Oracle)

莉・荳九(1)ス(2)縺ョ蜃ヲ逅縺悟ョ溯。後&繧後k縺ィ閾ェ蜍慕噪縺ォCommit縺輔l繧(證鈴サ吶ョCommit)

(1)DDL譁
繝繝シ繝悶Ν縺ョ菴懈舌サ螳夂セゥ遲(Create/Alter/Truncate/Drop遲)

(2)DCL譁
讓ゥ髯占ィュ螳壹∝叙豸/遒コ螳壼ヲ逅遲(Grant/Revoke/Commit/RollBack遲)
窶サSavePoint髯、縺

繝医Λ繝ウ繧カ繧ッ繧キ繝ァ繝ウ縺ョ邨ゆコ譚。莉カ
繝サCommit/RollBack縺檎匱陦後&繧後k
繝サDDL譁/DCL譁縺ョ螳溯。
窶サDCL譁シ售avePoint髯、縺
繝サSQL Plus/SQL Developer遲峨ョ謫堺ス懊ヤ繝シ繝ォ縺ョ邨ゆコ
窶サ邨ゆコ譎ゅ,ommit縺励※縺縺ェ縺蜃ヲ逅縺ッRollBack縺輔l繧九
繝サ繝槭す繝ウ髫懷ョウ縲√す繧ケ繝繝髫懷ョウ逋コ逕滓凾(RollBack縺輔l繧)

謗剃サ門宛蠕。

陦ィ繝ュ繝繧ッ

蜈ア譛峨Ο繝繧ッ/謗剃サ悶Ο繝繧ッ
LOCK TABLE (陦ィ蜷) IN SHARE MODE
LOCK TABLE (陦ィ蜷) IN EXCLUSIVE MODE

SELECT繧ェ繝励す繝ァ繝ウ

SELECT ス WITH SHARE LOCK
SELECT ス WITH EXCLUSIVE LOCK

Follow me!

蜑阪ョ險倅コ

SQL DMLシ壽シ皮ョ怜ュ

谺。縺ョ險倅コ

SQL DCLシ壹す繝弱ル繝