ORA_ROWSCN ¿Cómo conocer la fecha y hora de última modificación de una fila dentro de una tabla?
Ayer me tocó afrontar una tarea sencilla, de las del día a día. Algo que para cualquier DBA es de primero de primaria. Borrar unas filas de una tabla.
Aparentemente, algo muy sencillo.
- Primero, una select para ver lo que hay en la tabla
- Segundo, montamos una select para seleccionar lo que vamos a borrar y estar seguros antes de ejecutar el delete.
- Tercero, como uno es inseguro por naturaleza, hace una copia de la tabla por si acaso (create table NOMBRETABLA as select * from TABLAORIGEN).
- Cuarto, ya preparados y asegurados, ejecutamos el delete.
- Quinto, un commit, que confirme bien que hemos borrado los registros.
- Sexto y último paso, volver a hacer el primer select para verificar que hemos borrado los datos.
Fácil no? Una tarea rápida, de las que a veces se agradecen para descansar un poco la cabeza y no tener que pensar demasiado.
Hoy, me dicen si realmente he ejecutado el borrado, que parece que los registros no se han borrado, que siguen ahí.
What? Como es posible? 😱 Juro y perjuro que los he borrado.
Compruebo, y efectivamente, ahí están. NO ES POSIBLE. Los registros siguen en la tabla. 😡
Repito el mismo procedimiento, vuelvo a montar las consultas (porque algo tan simple, para qué lo iba a guardar?) ejecuto todo, vuelvo a comprobar, y los datos, efectivamente, ya no están.
Antes de confirmar de nuevo que los he vuelto a borrar, he preferido ser más conservador y esperar.
TACHÁN!! Al esperar un rato, vuelvo a comprobar, y ahí están de nuevo, los registros han vuelto a aparecer en la tabla.
Leer artículo completo