На теория всичко трябва да е наред, но винаги има сценарии, когато кодът ви може да се провали.
Например:
а) blind insert
:
INSERT INTO tab_name
VALUES (1, 'b', 'c');
Сляпо вмъкване е, когато заявка INSERT не посочва кои колони получават вмъкнатите данни.
Защо това е лошо?
Тъй като схемата на базата данни може да се промени. Колоните могат да бъдат премествани, преименувани, добавяни или изтривани. И когато са, може да се случи едно от поне три неща:
Заявката е неуспешна. Това е най-добрият сценарий. Някой е изтрил колона от целевата таблица и сега няма достатъчно колони, в които да влезе вмъкването, или някой е променил тип данни и вмъкнатият тип не е съвместим или така нататък. Но поне данните ви не се повредят и може дори да знаете, че проблемът съществува поради съобщение за грешка.
Заявката продължава да работи и нищо не е наред. Това е средно-лошият сценарий. Данните ви не са повредени, но чудовището все още се крие под леглото.
- Заявката продължава да работи, но сега някои данни се вмъкват някъде, където не им е мястото. Данните ви се повреждат.
б) ORDER BY oridinal
SELECT *
FROM tab
ORDER BY 1;