Considere que os seguintes comandos tenham sido executados ...
Considere que os seguintes comandos tenham sido executados no PostgreSQL 14.18

Nesse caso, o comando SELECT * FROM veiculo; apresentará, ao ser executado, o resultado a seguir

Comentários
Veja os comentários dos nossos alunos
SELECT * FROM ONLY veiculo; assim busca somente a tabela veiculo sem a sua tabela filha.
tenho certa experiência em SQL e nunca vi isso kkkk parece ser algo específico do postgree
Conceito de herança no postgres, assim o PostgreSQL inclui registros das tabelas filhas ao consultar a tabela pai com select simples.
Para que retorna-se o proposto na questão teria que ser executado o select que o colega comentou "SELECT * FROM ONLY veiculo;"
De fato, questão de postgres...
**Questão ESPECÍFICA para PostgreSQL**
MySql, MariaDB, Oracle, Sql server não tem herança por padrão (acho kk)
Pelo comportamento padrão de herança no PostgreSQL, a consulta SELECT feita na tabela “pai” inclui as linhas das tabelas “filhas” (a menos que se use ONLY). Logo, com as tabelas:
- veiculo(id serial PK, nome)
- carro(placa UNIQUE NOT NULL) INHERITS (veiculo)
E os inserts:
- veiculo: (‘Bicicleta’)
- carro: (‘Tesla Model Y’, ‘Y1357’) e (‘BMW X6’, ‘W6789’)
O comando:
SELECT * FROM veiculo;
retornará as 3 linhas, incluindo as de “carro”, com IDs gerados pela sequência de veiculo para as inserções feitas diretamente em veiculo e, para as inserções em carro, pela sequência associada à coluna herdada (se carro não redefiniu o id, usará a mesma sequência da tabela pai). Exemplo de resultado esperado:
id | nome
1 | Bicicleta
2 | Tesla Model Y
3 | BMW X6
Observações:
- Para ver apenas os registros da tabela pai, use: SELECT * FROM ONLY veiculo;
- Se “carro” tivesse sua própria sequência para id, ainda assim as linhas apareceriam no SELECT da tabela pai; apenas os valores de id poderiam pular conforme a sequência usada pela filha.
O PostgreSQL inclui automaticamente os registros das tabelas filhas (como ), mas só mostra as colunas da tabela pai.
Logo o resulltado:
id | nome
----+----------------
1 | Bicicleta
2 | Tesla Model Y
3 | BMW X6
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo