Secara teori semuanya akan baik-baik saja, tetapi selalu ada skenario ketika kode Anda bisa gagal.
Misalnya:
a) blind insert
:
INSERT INTO tab_name
VALUES (1, 'b', 'c');
Sisip buta adalah saat kueri INSERT tidak menentukan kolom mana yang menerima data yang disisipkan.
Mengapa ini hal yang buruk?
Karena skema database dapat berubah. Kolom dapat dipindahkan, diganti namanya, ditambahkan, atau dihapus. Dan ketika itu terjadi, salah satu dari setidaknya tiga hal dapat terjadi:
Kueri gagal. Ini adalah skenario kasus terbaik. Seseorang menghapus kolom dari tabel target, dan sekarang tidak ada cukup kolom untuk dimasukkan, atau seseorang mengubah tipe data dan tipe yang disisipkan tidak kompatibel, atau seterusnya. Tapi setidaknya data Anda tidak rusak, dan Anda bahkan mungkin tahu masalahnya ada karena pesan kesalahan.
Kueri terus berfungsi, dan tidak ada yang salah. Ini adalah skenario kasus terburuk tengah. Data Anda tidak rusak, tetapi monster itu masih bersembunyi di bawah tempat tidur.
- Kueri terus bekerja, tetapi sekarang beberapa data sedang disisipkan di tempat yang bukan tempatnya. Data Anda rusak.
b) ORDER BY oridinal
SELECT *
FROM tab
ORDER BY 1;