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

Postitas Erki Eessaar, 21.02.2025 09:18:07
Tagasi nimekirja
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?

Anna postitusele hinnang (1 – halb, 5 – väga hea):

Keskmine hinne: Pole veel hinnatud