Mailinglisten-Archive |
Stefan Sturm wrote: > Hallo zusammen, > > ich arbeite normalerweise nicht mit MySQL, muss es aber leider derzeit auf > Grund eines Projektes tun. Nun bin ich da aber leider auf ein Problem > gestoßen. > > Ich habe folgende Tabelle: > CREATE TABLE `tabelle1` ( > `ID` bigint(20) NOT NULL auto_increment, > `name` varchar(128) NOT NULL default '', > `ctime` timestamp(14) NOT NULL, > `mtime` timestamp(14) NOT NULL, > PRIMARY KEY (`ID`) > ) TYPE=MyISAM > > Das Feld ctime soll den Timestamp der Datensatzerstellung enthalten und das > Feld mtime immer den der letzten Änderung. > > Nun füge ich einen Datensatz hinzu: > insert into `datenblatt` (name, ctime) values ('Name', now()); > > Und nun einen Update auf das Feld: > update `datenblatt` set name = 'Name1', mtime = now() where id = 2; > > Und nun muss ich mit erschrecken feststellen, das ctime und mtime geändert > wurden????? > > Nun mal ein anderes Update: > update `datenblatt` set name = 'Name2', ctime = now() where id = 2; > > Nun wird nur das Feld ctime geändert... > > Dann noch mal das erste Update. Und wieder werden beide Felder geändert... > > Da stimmt doch wohl etwas nicht, oder? Hat irgendjemand schon mal ähnlich > Erfahrungen gesammelt? doch, das stimmt so das erste Timestamp wird immer auf die aktuelle zeit gesetzt zu der zuletzt etwas geändert wurde (außer die Spalte erscheint explizit in Query), die Lösung für dich wäre einfach ctime und mtime zu tauschen! http://www.mysql.com/doc/en/DATETIME.html -- Sebastian Mendel (www.sebastianmendel.de) *www.warzonez.de* | www.tekkno4u.de | www.nofetish.com -- Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive