Ralf: MySQL Update - Timestamp soll sich nicht autom. mitverändern

Hallo

Ich möchte ein Update an einer MySQL Table vornehmen.

Datenbankstruktur:

id | payuser | paymonth       | fee |addfee | received       |payed
11 | Rupert  | 20040301000000 | 5   |15     | 00000000000000 |20
10 | Peter   | 20040201000000 | 5   |15     | 00000000000000 |0
12 | Andre   | 20040201000000 | 5   |15     | 00000000000000 |0

Query:

UPDATE pay_stats SET received='20040202000000', payed='20' WHERE id='12'

'paymonth' und 'received' sind jeweils Timestamps.
leider wird bei der Query 'paymonth' mit geupdated - also NOW() -
solls aber nicht. Weiss jemand Rat?

Gruß
Ralf

  1. Halihallo Ralf

    'paymonth' und 'received' sind jeweils Timestamps.
    leider wird bei der Query 'paymonth' mit geupdated - also NOW() -
    solls aber nicht. Weiss jemand Rat?

    Die einzige Möglichkeit besteht darin, das erste Timestamp-Attribut
    in jedem UPDATE-Command auf einen Wert (der, der schon drin
    gestanden hat) zu setzen.

    Per Definition (s. Doku) wird das erste Timestamp-Attribut immer mit
    der aktuellen Timestamp gefüllt, falls es nicht explizit auf einen
    anderen Wert gesetzt wird.
    Verwende - falls dies eben nicht erwünscht ist - den Datentypen
    DATETIME, oder "emuliere" die Timestamp über ein INT(10) UNSIGNED.

    Dies lässt sich nicht unterbinden.

    Viele Grüsse

    Philipp

    1. Hallo,

      Dies lässt sich nicht unterbinden.

      ... ausser durch eine Veraenderung der Tabelle,
      sodass die betroffene Spalte nicht mehr die erste,
      sondern die zweite Spalte vom Typ "TIMESTAMP" ist.
      Es reicht also, (z.B. als zweite Spalte) eine weitere
      Spalte vom Typ TIMESTAMP einzufuegen.

      ALTER TABLE tabellenname ADD COLUMN tsauto TIMESTAMP AFTER spalte1
      oder so, siehe
      http://www.mysql.com/doc/de/ALTER_TABLE.html

      Gruesse,

      Thomas

      --
      Bitte keine Mails mit Fachfragen - dafuer gibt es das Forum!
      Ich mag es, wenn URLs verlinkt sind (</faq/#Q-19>).
      Oft gestellte PHP-Fragen beantwortet die dclp-FAQ bestens: http://www.dclp-faq.de/
    2. Ahh vielen Dank

      soeben habe ich gemerkt dass ich die Uhrzeit gar nicht benötige
      ich habe mich daher nun für DATE entschieden.
      Ich habe bishe rimmer nur TIMESTAMP genutzt weils für mich "das einzig wahre war" ;)

      Weiß jemand ob sich nach DATE ganz normal sortieren lässt wie TIMESTAMP auch?!

      MFG
      Ralf

      1. Halihallo Ralf

        Weiß jemand ob sich nach DATE ganz normal sortieren lässt wie TIMESTAMP auch?!

        Natürlich; in SQL ist alles Sortierbar ;-)

        Viele Grüsse

        Philipp

      2. Hallo,

        Weiß jemand ob sich nach DATE ganz normal sortieren lässt wie TIMESTAMP auch?!

        Ja, klar.
        _Der_ grosse Unterschied zwischen TIMESTAMP und DATE/DATETIME
        ist eben, dass die jeweils erste TIMESTAMP-Spalte in
        einer Zeile bei Aenderungen automatisch aktualisiert
        wird, DATE/DATETIME jedoch nicht.
        Auch DATE bzw. DATETIME kannst Du auf den aktuellen Zeitpunkt setzen:
        ... datumspalte=NOW()

        http://www.mysql.com/doc/en/DATETIME.html

        Gruesse,

        Thomas

        1. Nun gut mit Date scheint es keinerlei Probleme zu machen! Danke für
          euer beider Unterstützung :)

          MFG
          Ralf Heumann