fasterzip - 2013-02-22

Español

Si la estructura de la tabla cambia (añadiendo o eliminando campos), después de eliminar registros de esa tabla, la funcion fn_RecuperarReg puede recuperar los registros eliminados, almacenados en la tabla deleted.borradoscopia usando un filtro sobre 1 campo.
Pasos de instalación:
1) Ejecute el archivo create_functions.sql en su editor de plpgsql favorito. Debe borrar si existe y crear el esquema deleted, lo mismo hará para las funciones public.fn_borradocopia, deleted.fn_RecuperarReg y deleted.fn_asociatriggerdelete
2) Para crear los triggers para cada tabla en todo el esquema, use la funcion deleted.fn_asociatriggerdelete asi:
select * from deleted.fn_asociatriggerdelete('nombre esquema',null);
Para asociarlo sobre una tabla en especifico:
select * from deleted.fn_asociatriggerdelete('nombre esquema','nombre tabla');

Con esto estarán creadas las funciones, la tabla y los triggers necesarios para que funcione el sistema de recuperación de registros borrados.

Ejemplos de uso:
--recupera todos los registros cuyo campo idcliente sea igual a 2 y borra los registros recuperados en la tabla borradoscopia
select deleted.fn_RecuperarReg('tablas','clientesborradocopia','idcliente','2',null,null);
--RECOVER ALL ROWS OF A TABLE AND DOESN'T ERASE THE ROWS IN THE TABLE BORRADOSCOPIA
select deleted.fn_RecuperarReg('tablas','clientesborradocopia',null,null,null,null,'N');
--RECOVER ALL ROWS OF A TABLE AND ERASE THE ROWS IN THE TABLE BORRADOSCOPIA
select deleted.fn_RecuperarReg('tablas','platanitos',null,null,null,null,'S');
--RECOVER ALL ROWS WHICH FIELD "FOTO" IS NULL AND ERASE THE ROWS IN THE TABLE BORRADOSCOPIA
select deleted.fn_RecuperarReg('tablas','platanitos','foto',null,null,null);

El archivo "Example tables.sql" contiene un buen ejemplo de uso de este proyecto. Solo ejecútalo paso a paso y verás como se maneja esta herramienta y su alta importancia.


English

If the table structure changes (adding or removing fields) after deleting records in that table, the function fn_RecuperarReg can recover deleted records, stored in the table deleted.borradoscopia using a filter on one field.
Installation Steps:
1) Run the file in your editor create_functions.sql favorite plpgsql. You must delete if exists and create the schema deleted, so will for public.fn_borradocopia functions, and deleted.fn_asociatriggerdelete deleted.fn_RecuperarReg
2) To create the triggers for each table in the whole scheme, use deleted.fn_asociatriggerdelete function like this:
select * from deleted.fn_asociatriggerdelete ('schema name', null);
To associate on a specific table:
select * from deleted.fn_asociatriggerdelete ('schema name', 'table name');

This function will be created, the table and the triggers needed to run the system recovery of deleted records.

Examples of use:

  • recover all records whose CustomerID field is equal to 2 and delete records retrieved the table borradoscopia
    select deleted.fn_RecuperarReg('tablas','clientesborradocopia','idcliente','2',null,null);
    --RECOVER ALL ROWS OF A TABLE AND DOESN'T ERASE THE ROWS IN THE TABLE BORRADOSCOPIA
    select deleted.fn_RecuperarReg('tablas','clientesborradocopia',null,null,null,null,'N');
    --RECOVER ALL ROWS OF A TABLE AND ERASE THE ROWS IN THE TABLE BORRADOSCOPIA
    select deleted.fn_RecuperarReg('tablas','platanitos',null,null,null,null,'S');
    --RECOVER ALL ROWS WHICH FIELD "FOTO" IS NULL AND ERASE THE ROWS IN THE TABLE BORRADOSCOPIA
    select deleted.fn_RecuperarReg('tablas','platanitos','foto',null,null,null);

The file "Example tables.sql" contains a good example of using this project. Just run it step by step and see how it handles this tool and its high importance.