Meu aplicativo tem uma lista de tabelas de um banco de dados externo e precisa ser atualizado regularmente. Como verifico se uma tabela foi renomeada? ou seja, como diferenciar entre uma nova tabela e uma tabela antiga que foi renomeada? Procurando soluções sql/python/sqlalchemy que funcionem no maior número possível de mecanismos.
Estou ciente do OID no postgres , mas até onde pude dizer, não é muito confiável e não há equivalente no mysql. Suponho que poderia fazer algo com o tempo de criação e modificação do tempo, mas estou tentando ver se há uma maneira mais fácil.
Editar: O aplicativo é uma ferramenta de visualização de dados à qual os bancos de dados externos se conectam. Eu não tenho controle sobre o design dos dbs que se conectam ao aplicativo, e é por isso que preciso levar em conta as tabelas sendo renomeadas.
Não há outra maneira de estabelecer a identidade de uma tabela de banco de dados no PostgreSQL a não ser através do OID (coluna do sistema
tableoid
). A hora de criação não é armazenada no PostgreSQL.Confiar na tabela OID não é apenas propriedade do PostgreSQL, mas também um pouco inseguro, pois os OIDs podem ser reutilizados. Eu recomendo que você mantenha um inventário de suas modificações de tabela em uma tabela de banco de dados separada.