25. februar 2005 - 10:59Der er
5 kommentarer og 1 løsning
Bug? MySQL opdaterer felt der ikke er med i UPDATE
Jeg assisterer på en hjemmeside med følgende versioner: php: v4.3.10 mySQL: v4.0.21
Jeg har følgende SQL: UPDATE debat SET AntLaest = AntLaest + 1 , SenestOpdat = NOW() WHERE ID = $REQUEST_ID
SQL'et virker som sådant helt fint. Men af ukendte årsager bliver den første timestamp-værdi i tabellen (OpretTid) også sat til NOW() ved ovenstående update.
Efter jeg havde hevet alle hårene af hovedet prøvede jeg at omdøbe OpretTid til OpretTid2 og tilføje OpretTid i slutningen af tabellen. Nu er det så OpretTid2 der bliver opdateret - altså stadigvæk den første timestamp-værdi i tabellen.
Umiddelbart ser jeg kun den løsning at jeg tilføjer et dummy-felt i starten af alle tabeller, men det synes jeg ikke kan være rigtigt.
Er der nogle der kender til denne bug og ved hvad jeg ellers kan gøre for at undgå problemet?
tabellen indeholder følgende felter med typen TIMESTAMP: OpretTid2 (den jeg lavede om), SenestLaestTid, SenestIndlaeg, SenestOpdat og OpretTid men det er kun OpretTid2 der bliver opdateret.
Mig bekendt er felttypen alene en definition af hvordan værdien bliver gemt .. intet med auto-update?
A TIMESTAMP column is useful for recording the date and time of an INSERT or UPDATE operation. The first TIMESTAMP column in a table is automatically set to the date and time of the most recent operation if you don't assign it a value yourself
Altså det første felt af typen TIMESTAMP bliver automatisk opdateret! Det kan du jo så vælge at udnytte ved at sætte det felt der skal opdateres ('SenestOpdat') først :o)
Hov ... jeg har lige været inde på MySQL og fundet beskrivelsen
11.3.1.1. TIMESTAMP Properties Prior to MySQL 4.1 The TIMESTAMP column type provides a type that you can use to automatically mark INSERT or UPDATE operations with the current date and time. If you have multiple TIMESTAMP columns in a table, only the first one is updated automatically.
detox - skriv lige et svar :) Mange tak for hjælpen !!
Der sker ingenting når jeg trykker på Accepter? detox .. du må lige vente med pointene .. prøver igen i løbet af weekenden.
Synes godt om
Ny brugerNybegynder
Din løsning...
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.