Eu tenho um sistema OOB que tem centenas de tabelas. Cada tabela tem uma coluna ROWSTAMP (inteiro) que é preenchida por um gatilho toda vez que um registro é criado/atualizado.
Todas as tabelas e gatilhos no banco de dados usam a mesma sequência. Cada vez que um registro é atualizado em qualquer lugar do banco de dados, essa sequência é usada para obter o próximo inteiro disponível. (Suponho que eu poderia considerar a sequência como uma espécie de sequência global ).
IBM: Uso da coluna ROWSTAMP nas tabelas Maximo
É lamentável que essas colunas ROWSTAMP sejam números inteiros e não datas. O que realmente preciso nas tabelas são as colunas CHANGEDATE. As datas seriam úteis para solução de problemas de entrada de dados, relatórios e análises em geral. Mas não posso justificar a personalização de centenas de tabelas com colunas de data e a adição de centenas de gatilhos no sistema OOB. As tabelas customizadas não seriam suportadas pela IBM e não valeria a pena o esforço/complexidade adicional.
Eu sinto que essas colunas ROWSTAMP estão tão perto de serem úteis para mim. Não posso deixar de me perguntar:
Existe uma maneira de recuperar a data em que esses valores de sequência ROWSTAMP foram gerados?
Por exemplo, e duvido que isso seja possível, eu poderia adicionar uma coluna DATE à sequência e depois juntar da minha tabela à sequência para obter a data? Ou eu poderia usar algum tipo de mecanismo de log na sequência para colocar linhas (com datas) em uma tabela sempre que o próximo valor de sequência for usado?
Não há como adicionar uma data a uma sequência ou saber inerentemente quando um valor de sequência foi gerado. Você precisaria adicionar uma
CHANGEDATE
coluna a cada tabela e fazer o gatilho atualizar essa coluna para cada registro modificado ou criar uma tabela de auditoria comROWSTAMP
eCHANGEDATE
inserir nessa tabela além de todas as outras alterações nas quais os gatilhos são acionados. – pmdba