2
respostas

Pugar dados antigos

Boa tarde galera, estou com uma atividade em que preciso fazer a purga de dados antigos, ou seja do ano 2023 para trás em vários schemas e de varias tabelas, a duvida é, como faço esse comando? detalhe, essas tabelas não tem um campo com a data do registo, existe alguma view que posso usar para filtrar pela data do insert/update? Desde já agradeço a todos!

2 respostas

Olá Aulino, tudo bem com você?

No PostgreSQL, não existe uma maneira automática de rastrear a data de inserção ou atualização de um registro a menos que você tenha um campo específico para isso na sua tabela. No entanto, se você está procurando uma maneira de identificar e excluir registros antigos, a melhor abordagem seria adicionar uma coluna de data/hora em suas tabelas que registra a data e hora de cada inserção ou atualização.

Exemplo:

ALTER TABLE sua_tabela
ADD COLUMN data_registro TIMESTAMP DEFAULT CURRENT_TIMESTAMP;

Esta instrução adicionará uma nova coluna chamada data_registro à tabela sua_tabela e preencherá automaticamente com a data e hora atuais sempre que um novo registro for inserido.

Para atualizações, você pode usar um trigger para atualizar o campo data_registro. Exemplo:

CREATE OR REPLACE FUNCTION atualizar_data_registro()
RETURNS TRIGGER AS $$
BEGIN
   NEW.data_registro = NOW();
   RETURN NEW;
END;
$$ language 'plpgsql';

CREATE TRIGGER atualizar_data
BEFORE UPDATE ON sua_tabela
FOR EACH ROW
EXECUTE PROCEDURE atualizar_data_registro();

Depois de ter a coluna data_registro em suas tabelas, você pode usar uma instrução DELETE para excluir registros antigos:

DELETE FROM sua_tabela
WHERE data_registro < '2023-01-01';

Esta instrução excluirá todos os registros da tabela 'sua_tabela' que foram inseridos ou atualizados antes de 1º de janeiro de 2023.

Espero ter ajudado. Abraços e bons estudos!

Muito obrigado pelo retorno, vou analisar a utilização desses comandos.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software