phpbar.de logo

Mailinglisten-Archive

[php] MySql - Datum automatisch bei Neuanlage

[php] MySql - Datum automatisch bei Neuanlage

Sebastian Mendel lists at sebastianmendel.de
Don Sep 8 13:40:39 CEST 2005


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