Andmebaasid I (ITI0206) (kevad 2025)

Küsimus

Anonüümne (21.02.2025 09:14)
Mis probleem on (PostgreSQL näitel) veeru deklaratsiooniga: registr_aeg TIMESTAMP NOT NULL DEFAULT LOCALTIMESTAMP(0)

Vastus (21.02.2025 09:18):

SELECT LOCALTIMESTAMP;
 
Tagastab hetke kuupäeva, kellaaja ja sekundi murdosad kuue koha täpsusega.
 
Funktsiooni väljakutses saab määrata, kui täpselt või kas üldse sekundi murdosasid soovitakse.
 
SELECT LOCALTIMESTAMP(0);
 
sekundi murdosasid ei tagasta.
 
Tüübi deklaratstioon TIMESTAMP - saab salvestada sekundi murdosad kuue koha täpsusega.
Tüübi deklaratstioon TIMESTAMP(0) - sekundi murdosasid ei salvestata.

Kaks probleemi:
  • Ebaselge, mida andmebaasi tegija tegelikult soovis. Kaks võimalust:
    • sekundi murdosasid ei soovita salvestada; see, et TIMESTAMP(0) asemel on TIMESTAMP, on tähelepanematus e "iluviga";
    • tegelikult soovitakse salvestada ka sekundi murdosasid, kuid tähelepanematusest on kirjutatud LOCALTIMESTAMP(0), mitte LOCALTIMESTAMP.
  • Andmekvaliteet.
    • on võimalik, et osad registreerimise ajad on vaikimisi väärtuse tõttu sekundi murdosadeta, kuid osad registreerimise ajad on kasutaja enese poolt sisestatud ja sekundi murdosadega.
Hinda vastust:

Keskmine hinne: Pole veel hinnanguid!