In teoria dovrebbe andare tutto bene, ma ci sono sempre scenari in cui il tuo codice potrebbe fallire.
Ad esempio:
a) blind insert
:
INSERT INTO tab_name
VALUES (1, 'b', 'c');
Un inserimento cieco si verifica quando una query INSERT non specifica quali colonne ricevono i dati inseriti.
Perché è una cosa negativa?
Perché lo schema del database potrebbe cambiare. Le colonne possono essere spostate, rinominate, aggiunte o eliminate. E quando lo sono, una di almeno tre cose può succedere:
-
La query non riesce. Questo è lo scenario migliore. Qualcuno ha eliminato una colonna dalla tabella di destinazione e ora non ci sono abbastanza colonne in cui inserire l'inserimento, oppure qualcuno ha modificato un tipo di dati e il tipo inserito non è compatibile, e così via. Ma almeno i tuoi dati non vengono danneggiati e potresti anche sapere che il problema esiste a causa di un messaggio di errore.
-
La query continua a funzionare e non c'è nulla di sbagliato. Questo è uno scenario nel peggiore dei casi. I tuoi dati non sono corrotti, ma il mostro si nasconde ancora sotto il letto.
- La query continua a funzionare, ma ora alcuni dati vengono inseriti in un punto a cui non appartengono. I tuoi dati vengono danneggiati.
b) ORDER BY oridinal
SELECT *
FROM tab
ORDER BY 1;