Last active
May 4, 2016 03:30
-
-
Save sebastianwebber/b7987be88c44039c91611acaf07068ad to your computer and use it in GitHub Desktop.
Exemplo PL pra gerar DELETE das tabelas de auditoria Baseado em data
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # gera o arquivo com as instruções | |
| psql -c "SELECT * FROM fnc_apaga_auditoria('2015-01-01','auditoria')" -At > meu_arquivo.sql | |
| ## $ cat meu_arquivo.sql | |
| ## -- Table auditoria.foo | |
| ## DELETE FROM auditoria.foo WHERE dtinc <= '2015-01-01'; | |
| ## VACUUM FULL auditoria.foo; | |
| ## | |
| ## -- Table auditoria.bar | |
| ## DELETE FROM auditoria.bar WHERE dtinc <= '2015-01-01'; | |
| ## VACUUM FULL auditoria.bar; | |
| # executa o arquivo gerado. | |
| psql -f meu_arquivo.sql |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| -- Exemplo PL pra gerar DELETE das tabelas de auditoria Baseado em data | |
| DROP FUNCTION IF EXISTS fnc_apaga_auditoria(pdDataInicioDelete DATE,pcNomeSchema VARCHAR ); | |
| CREATE OR REPLACE FUNCTION fnc_apaga_auditoria(pdDataInicioDelete DATE,pcNomeSchema VARCHAR ) | |
| RETURNS SETOF TEXT AS | |
| $$ | |
| DECLARE | |
| rTabela RECORD; | |
| BEGIN | |
| FOR rTabela IN | |
| SELECT | |
| tablename, | |
| schemaname, | |
| 'DELETE FROM ' || schemaname || '.' || tablename || | |
| ' WHERE dtinc <= ' || QUOTE_LITERAL(pdDataInicioDelete) || ';' AS sql_query | |
| FROM pg_tables | |
| WHERE schemaname = pcNomeSchema | |
| LOOP | |
| RETURN NEXT '-- Table ' || rTabela.schemaname || '.' || rTabela.tablename; | |
| RETURN NEXT rTabela.sql_query; | |
| RETURN NEXT 'VACUUM FULL ' || rTabela.schemaname || '.' || rTabela.tablename || ';'; | |
| RETURN NEXT ''; | |
| END LOOP; | |
| END; | |
| $$ LANGUAGE 'plpgsql'; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment