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!