PostgreSQL recover deleted rows trigger Wiki
PostgreSQL recover deleted rows trigger
Status: Beta
Brought to you by:
fasterzip
Welcome to your wiki!
This is the default page, edit it as you see fit. To add a new page simply reference it within brackets, e.g.: [SamplePage].
The wiki uses Markdown syntax.
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:
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.