Tenho uma pequena tabela (~10 linhas) chamada restrictions
em meu banco de dados PostgreSQL, onde valores são deletados e inseridos diariamente.
Eu gostaria de ter uma tabela chamada restrictions_deleted
, onde todas as linhas deletadas restrictions
seriam armazenadas automaticamente. Como restrictions
tem um ID de série, não haverá duplicatas.
Como escrevo esse gatilho no PostgreSQL?
Você só precisa mover os dados antigos para a
restrictions_deleted
tabela antes que sejam excluídos. Isso é feito com oOLD
tipo de dados. Você pode usar uma instrução regulatINSERT
e usar osOLD
valores como os valores a serem inseridos.Se você está aberto a uma abordagem diferente, você já pensou em adicionar um sinalizador booleano 'excluído' à tabela ou um carimbo de data/hora 'excluído_em'?
Ou melhor ainda, negue o acesso CRUD às suas tabelas de banco de dados e lide com a trilha de auditoria em sua API transacional :)