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.

Hinda postitust:

Keskmine hinne : Pole veel hinnanguid!