Eu estava seguindo um tutorial do PostgreSQL e o autor acabou de mencionar que existem colunas de sistema no PostgreSQL, mas não mencionou quando e por que usá-las.
Além disso, na documentação do PostgreSQL , ele apenas menciona que existem colunas do sistema, mas não indica quando e por que usá-las?
Quais são os usos das colunas do sistema no PostgreSQL?
As colunas do sistema destinam-se principalmente a serem usadas pelo sistema. Essas colunas são detalhes de implementação que podem mudar entre as versões principais (embora muito improváveis para a maioria delas). Você não encontrará muito no manual
when and why to use them
porque não deve usá-los em operação padrão. O manual diz:Dito isso, existem várias situações especiais e casos extremos em que cada uma dessas colunas é útil. Lembre-se de que
SELECT *
nunca inclui colunas do sistema. Você deve listá-los explicitamente se quiser que eles estejam naSELECT
lista.Por exemplo, você pode usar o
ctid
(ID da tupla) para identificar exclusivamente linhas (na mesma instrução) na ausência de uma chave primária na mesma instrução:Pesquise Postgres em combinação com cada coluna do sistema aqui no dba.SE ou no stackoverflow para encontrar vários outros casos de uso. Pesquisa de exemplo.
Além da página de manual sobre as colunas do sistema à qual você está vinculando, há pelo menos uma outra que é relevante: