मान लीजिए मैं एक मेज और यहआरडीबीएमएस द्वारा संचालित एक तालिका अद्यतन कैसे किया जाता है?
original simple table A
------------------------
rowid | id name
123 | 1 A
124 | 4 G
125 | 2 R
126 | 3 P
index on A.id
-------------
id rowid
1 123
2 125
3 126
4 124
पर एक सूचकांक इस बिंदु पर है, मैं इस DML कथन
UPDATE A SET id = 5 WHERE id = 4
वास्तव में होता क्या है जब इस बयान निष्पादित किया जाता है निष्पादित?
एक)
BEGIN
go to index
search for `id == 4` (B tree index generally)
find that `rowid = 124`
go to that location
update id in the table
come back (? I am not sure)
update the index
END
ख)
BEGIN
go to index
search for `id == 4` (B tree index generally)
update the id value in index
find that `rowid = 124`
go to that location
update id in the table
END
ग) कुछ और पूरी तरह से
होता है इस डेटाबेस में ही, यह कैसे Oracle में होता है पर निर्भर हो सकता है के रूप में?
मुझे लगता है कि कार्यान्वयन अलग-अलग होते हैं और उनमें से कई डिफ़ॉल्ट रूप से स्लॉट किए जाने के बजाय डिफ़ॉल्ट रूप से सी) या बी) ... – meagar
क्या यह होमवर्क है? –
@ हेनक: नहीं। मैं बस यह समझने की कोशिश कर रहा हूं कि यह कैसे काम करता है। यह एक परिदृश्य है जिसे मैंने बनाया है। – Moeb