Küsimus
Erki Eessaar
Mida tähendab, et kirjutage INSERT lause nii, et see poleks tundlik veergude järjekorra muutmise suhtes?
Vastus:
Halb:
INSERT INTO Isik VALUES ('39107070123', 'Mets');
-
- Kui tabelis Isik muutub veergude järjekord, siis tuleb seda lauset muuta.
- Vastasel juhul võib lisamine ebaõnnestuda, või mis veel hullem, lisamine õnnestub, kuid väärtused lähevad valedesse väljadesse.
- Lause ei kirjelda esitatud väärtuste tähendust.
INSERT INTO Isik (isikukood, perenimi) VALUES ('39107070123', 'Mets');
-
- Kui tabelis Isik muutub veergude järjekord, siis ei tule seda lauset muuta.
INSERT INTO Magamine_koopia SELECT * FROM Magamine;
-
- Lisaks eelnimetatud probleemidele ei näe koodi lugeja, millised veerud ja millises järjekorras alampäringu poolt tagastatakse.
INSERT INTO Magamine_koopia (ase_id, algus, magaja_id, kestus, kommentaar)
SELECT ase_id, algus, magaja_id, kestus, kommentaar
FROM Magamine;