Theoretisch sollte alles in Ordnung sein, aber es gibt immer Szenarien, in denen Ihr Code fehlschlagen könnte.
Zum Beispiel:
a) blind insert
:
INSERT INTO tab_name
VALUES (1, 'b', 'c');
Eine blinde Einfügung liegt vor, wenn eine INSERT-Abfrage nicht angibt, welche Spalten die eingefügten Daten erhalten.
Warum ist das schlecht?
Weil sich das Datenbankschema ändern kann. Spalten können verschoben, umbenannt, hinzugefügt oder gelöscht werden. Und wenn sie es sind, kann eines von mindestens drei Dingen passieren:
-
Die Abfrage schlägt fehl. Dies ist das Best-Case-Szenario. Jemand hat eine Spalte aus der Zieltabelle gelöscht, und jetzt gibt es nicht genügend Spalten für die Einfügung, oder jemand hat einen Datentyp geändert, und der eingefügte Typ ist nicht kompatibel, oder so weiter. Aber zumindest werden Ihre Daten nicht beschädigt, und Sie wissen vielleicht sogar, dass das Problem aufgrund einer Fehlermeldung besteht.
-
Die Abfrage funktioniert weiterhin, und nichts ist falsch. Dies ist ein mittleres Worst-Case-Szenario. Ihre Daten sind nicht beschädigt, aber das Monster versteckt sich immer noch unter dem Bett.
- Die Abfrage funktioniert weiterhin, aber jetzt werden einige Daten irgendwo eingefügt, wo sie nicht hingehören. Ihre Daten werden beschädigt.
b) ORDER BY oridinal
SELECT *
FROM tab
ORDER BY 1;