Supongamos que tengo una tabla y un índice en que¿Cómo es una actualización de mesa manejado por un RDBMS?
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
En este punto, me ejecutar esta instrucción DML
UPDATE A SET id = 5 WHERE id = 4
¿Qué ocurre exactamente cuando se ejecuta esta declaración?
una)
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
b)
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
c) Otra cosa sucede en su totalidad
Como esto puede depender de la propia base de datos, ¿cómo sucede en Oracle?
supongo que las implementaciones varían y muchos de ellos será por defecto c) en lugar de ser introducidos de manera simplista en a) ob) ... – meagar
Es esta tarea? –
@Henk: No. Estoy tratando de entender cómo funciona esto. Este es un escenario que inventé. – Moeb