Hello,
ganz großen Dank dafür, Sven!
Es funktioniert so auch auf MySQL 3.23.55
Man muss dann nur dafür sorgen, dass die Spalte ts2 beim Update nicht angefasst wird.
CREATE TABLE test1 (
zahl int(11) NOT NULL default '0',
ts1 timestamp(14) NOT NULL,
ts2 timestamp(14) NOT NULL default '00000000000000'
) TYPE=MyISAM;
ts1 = Last Update
ts2 = First Entry
INSERT INTO test1 (zahl, ts2) VALUES (2, NULL);
SELECT * FROM test1;
zahl ts1 ts2
2 20050308100309 20050308100309UPDATE test1 SET zahl = 3 WHERE zahl = 2;
SELECT * FROM test1;
zahl ts1 ts2
3 20050308100542 20050308100309
Offenbar hatte ich das mit den mehreren Timestamp-Spalten und der automatischen Wertzuweisung also doch verkehrt verstanden. Ich war davon ausgegangen, dass "nur die erste TS-Splate wird automatisch geführt" auch bedeuet, dass einer weiteren niemals automatisch ein Wert zugewiesen wird. Das "automatisch" bezieht sich aber nur auf das Übergeben von NULL an die erste Spalte. Unterlässt man es, sie anzusprechen, wird genauso der aktuelle Wert eingestanzt, als wenn man NULL zuweist. Bei der zweite wird aber nur updated, wenn man sie in den Values mit NULL bedenkt.
Wenn das auch irgendwo so ausführlich im MySQL-Manual stehen sollte, habe ich es wohl jedes Mal überlesen.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau