phpbar.de logo

Mailinglisten-Archive

Seltsames verhalten mit Timestamps

Seltsames verhalten mit Timestamps

Sebastian Tobias Mendel genannt Mendelsohn lists at sebastianmendel.de
Die Feb 10 11:32:31 CET 2004


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