Mida tähendab, et kirjutage INSERT lause nii, et see poleks tundlik veergude järjekorra muutmise suhtes?

Postitas Erki Eessaar
Halb:
  • INSERT INTO Isik VALUES ('39107070123', 'Mets');
    1. Kui tabelis Isik muutub veergude järjekord, siis tuleb seda lauset muuta.
    2. Vastasel juhul võib lisamine ebaõnnestuda, või mis veel hullem, lisamine õnnestub, kuid väärtused lähevad valedesse väljadesse.
    3. Lause ei kirjelda esitatud väärtuste tähendust.
Palju parem:
  • INSERT INTO Isik (isikukood, perenimi) VALUES ('39107070123', 'Mets');
    1. Kui tabelis Isik muutub veergude järjekord, siis ei tule seda lauset muuta.
Halb:
  • INSERT INTO Magamine_koopia SELECT * FROM Magamine;
    1. Lisaks eelnimetatud probleemidele ei näe koodi lugeja, millised veerud ja millises järjekorras alampäringu poolt tagastatakse.
Palju parem:
  • INSERT INTO Magamine_koopia (ase_id, algus, magaja_id, kestus, kommentaar)
    SELECT ase_id, algus, magaja_id, kestus, kommentaar
    FROM Magamine;

Hinda postitust:

Keskmine hinne : Pole veel hinnanguid!