Sascha: TIMESTAMP in MySQL

Hallo und guten Morgen :-)

ich habe folgendes SQL-Syntax-Problem. Meine Tabelle sind u.a. folgende
Attibute:

date_establishment timestamp(14)YES NULL
causer_adminID int(11)  0
date_modify timestamp(14)YES NULL
modify_adminID int(11)  0
date_last_activity timestamp(14)YES NULL

Wenn ein Datensatz angelegt wird, dann soll 'date_establishment' einen
Timestamp bekommen und 'date_modify', 'date_last_activity' sollen 'leer'
bzw. '00000000000000' bekommen.

Jetzt zum eigentlichen Problem. Wenn ein Datensatz modifiziert wird dann
soll 'date_modify' den Timestamp bekommen und 'date_establishment'  soll den
alten wert behalten.

Wie kann ich den passenden Query in PHP umsetzen?
In etwa so,
...
mysql_query("UPDATE hostdb_host SET modify_adminID='$adminid', date_establishment='$alterwert', date_modify=NOW( )
WHERE hostID='$hostID'") or die(mysql_error());
...
?

viele Grüße Sascha

  1. Hi!

    mysql_query("UPDATE hostdb_host SET modify_adminID='$adminid', date_establishment='$alterwert', date_modify=NOW( )
    WHERE hostID='$hostID'") or die(mysql_error());

    Siehe Manual: http://www.mysql.com/doc/de/DATETIME.html, da steht unter anderem:

    "Der TIMESTAMP-Typ ist ein Typ, den Sie dafür benutzen können, um INSERT- oder UPDATE-Operationen mit dem aktuellen Datum und der aktuellen Zeit zu stempeln. Wenn Sie mehrfache TIMESTAMP-Spalten haben, wird nur die erste automatisch aktualisiert."

    Und wenn Du die Spalten nicht vertauschen willst, dann mach sowas:

    UPDATE
      hostdb_host
    SET
      modify_adminID='$adminid',
      date_establishment=date_establishment,
      date_modify=NOW()

    Grüße
    Andreas

    1. Und wenn Du die Spalten nicht vertauschen willst, dann mach sowas:
      UPDATE
        hostdb_host
      SET
        modify_adminID='$adminid',
        date_establishment=date_establishment,
        date_modify=NOW()

      Danke!

      Werde ich gleich testen

      viele Grüße Sascha