Mailinglisten-Archive |
Christoph Kramesch wrote: >>>> Es muß gar nichts eingetragen werden.. >>>> Wenn du die felder a,b,c,ts in eienr Tabelle hast, und ts vom Typ >>>> timestamp ist, dann genügt ein >>>> INSERT INTO table (a,b,c) VALUES('a','b','c') >>>> damit der Timestamp automatisch gesetzt ist! >>> Da hast Du sicherlich recht. Aber ich wollte den Eintrag >>> ausschließlich zum Zeitpunkt der "Neuanlage" des Datensates. Nicht >>> bei späteren Änderungen. >> bei einem UPDATE verhält sich das anders, da ja dann schon ein Wert >> drin steht! > > Wenn ein Update geschieht, zum Beispiel wie beim oberen Beispiel ein > UPDATE table SET a='yxz' > > Dann wird der Timestamp TS automatisch mitgesetzt, egal ob was drinnen > steht oder nix, > also verhält es sich IMHO nicht anders... > Wenn man verhindern will, daß sich der Timestamp neu setzt, kann man das > mit > UPDATE table SET a='yxz', ts=ts > wobei sich dann nicht die Frage stellt ob Timestamp der richtige > Datentyp ist ;) oder man nimmt ein Feld welches sich nur bei neuanlage auf die Aktuelle Zeit setzt ... ab MySQL 4.1: "You can assign the current timestamp as the default value and the auto-update value, as before. But it is possible to have just one automatic behavior or the other, or neither of them. (It is not possible to have one behavior for one column and the other for another column.)" http://dev.mysql.com/doc/mysql/en/timestamp-4-1.html aber das mit dem 'INSERT ... `field` = NOW();' ist wohl die beste Methode, so lange man nur von dieser einen Stelle aus Daten einfügt ... -- Sebastian Mendel www.sebastianmendel.de www.sf.net/projects/phpdatetime | www.sf.net/projects/phptimesheet
php::bar PHP Wiki - Listenarchive