02. marts 2010 - 09:23Der er
15 kommentarer og 1 løsning
Indsæt dato tid som default
Jeg er ved at forsøge at konvertere en db til MySQL men er løbet ind i et sikkert ganske simpelt problem. I en tabel er der et datetime felt hvor jeg som standard skal have sat dato+tid ind På den eksisterende M$ SQL er det jo rimeligt simpelt at sætte getdate() ind som default, men det synes jeg ikke lige jeg kan få til at spille på MySQL
At TIMESTAMP felter ved visse kombinationer af options opdaterer feltet hver gang raekken opdateres. Meget smart for "lastmodified". Ikke smart for "created". Naerlaes om de options.
Det kan du nu nok have lidt ret i men da det virker fint både på MS Access og MS SQL og sådan set også SQLite som er de 3 andre type databaser kunden kan anvende, så var det jo smart om det var magen til på MySQL :-) Men det er kun 1 tabel hvor jeg rent faktisk bruger det felt til noget, så det var nok til at overkomme at lave om.
Det har du ret i, men jeg har altid anvendt at lægge det ind i tabellen med GETDATE() af den simple grund at så er jeg sikker på at det er serveren der bestemmer og klienter med afvigende ur har ingen indflydelse.
Men jeg vil se om ikke jeg kan tage mig sammen til at lave det om i næste version af programmet.
Lige nu har jeg et meget mere alvorligt emne for vores produktions-server er begyndt at melde fejl på sin RAID controller.
(min Delphi komponent understøtter også de nævnte db, men har ikke haft brug for dem endnu)
Jeg bruger ikke en insert i dette tilfælde da det er mit datagrid direkte der styrer det.
Hvis man sender en datetime værdi med over fra klienten så skal serveren ikke blande sig i om den ikke passer med dens tid efter min bedste overbevisning.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.