Em teoria, tudo deve estar bem, mas sempre há cenários em que seu código pode falhar.
Por exemplo:
a)
blind insert
: INSERT INTO tab_name
VALUES (1, 'b', 'c');
Uma inserção cega ocorre quando uma consulta INSERT não especifica quais colunas recebem os dados inseridos.
Por que isso é uma coisa ruim?
Porque o esquema do banco de dados pode mudar. As colunas podem ser movidas, renomeadas, adicionadas ou excluídas. E quando são, uma de pelo menos três coisas pode acontecer:
A consulta falha. Este é o melhor cenário. Alguém excluiu uma coluna da tabela de destino e agora não há colunas suficientes para inserir a inserção, ou alguém alterou um tipo de dados e o tipo inserido não é compatível, ou assim por diante. Mas pelo menos seus dados não estão sendo corrompidos, e você pode até saber que o problema existe por causa de uma mensagem de erro.
A consulta continua a funcionar e nada está errado. Este é um cenário de pior caso médio. Seus dados não estão corrompidos, mas o monstro ainda está escondido debaixo da cama.
- A consulta continua funcionando, mas agora alguns dados estão sendo inseridos em algum lugar ao qual não pertencem. Seus dados estão sendo corrompidos.
b)
ORDER BY oridinal
SELECT *
FROM tab
ORDER BY 1;