Update - Felder werden verändert, die nicht getroffen werden sollten
-
Hi,
ich benutze den MySql-Server 5.0.41. Ich hab eine Tabelle erstellt, die so aussieht.
Name -> varchar(20) (Primär Schlüssel)
StartZeit -> timestamp
EndZeit -> timestamp
KInfo -> varchar(100)Geschehen ist das mit der Anweisung:
CREATE TABLE MedMessData.Data (Name VARCHAR(20), PRIMARY KEY(Name), StartZeit TIMESTAMP, EndZeit TIMESTAMP, KInfo VARCHAR(100))
Wenn eine neue Zeile eingefügt wird, dann geschieht das so:
INSERT INTO MedMessData.Data SET Name = 'blah', StartZeit = CURRENT_TIMESTAMP, EndZeit = 0, KInfo = NULL
Wenn ich jetzt später mit:
UPDATE MedMessData.Data SET EndZeit = CURRENT_TIMESTAMP WHERE EndZeit = 0
die Endzeit setzen will, wird auch meine Startzeit überschrieben. Warum?
Ich kann keinen Denkfehler entdecken, vielleicht könnt ihr es ja.
Thx, Maffe
-
Hi,
lies dir mal den Beitrag auf
http://dev.mysql.com/doc/refman/5.1/de/timestamp-4-1.html
durch.Durch deine Default-Einstellung wird dein Timestamp auch als Aktualisierung angesehen, d.h. jedliche Änderung eines beliebigen Feldes ändert bei dir auch die Startzeit.
Du mußt demnach deine Tabellendefinition ändern.
-
Nimm DateTime und schreibe den Wert mit NOW()
In MySQL darf es nur einen Timestamp geben. Auch wenn man 2 Spalten definiert wird immer nur der erste genommen.
-
Alles klar. So geht's. Na ich hab die anderen Anfragen mal vor Jahren schon benutzt und da funktionierte es. Deswegen war ich leicht verwirrt.
Danke, an euch.