Mis probleem on (PostgreSQL näitel) veeru deklaratsiooniga: registr_aeg TIMESTAMP NOT NULL DEFAULT LOCALTIMESTAMP(0)

Postitas Erki Eessaar, 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.

Kas postitus oli kasulik? Hinda seda!

Keskmine hinne: Pole veel hinnanguid!


← Eelmine postitus Kas Teil on nõuandeid, kuidas luua andmebaasirakendust kasutades suuri keelemudeleid? Järgmine postitus → Kuidas jõustada MS Accessi ja PostgreSQL andmebaasis piirangut, et väärtus ei tohi olla tühi string, tühikutest koosnev string, tühimärkidest koosnev string?