Alex: CURRENT_TIMESTAMP in MySQL 4.0.27

Hallo alle!

Ich habe Probleme beim Erstellen einer Tabelle unter MySQL 4.0.27.

  
CREATE TABLE `thetable` (  
  `date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP  
);  

Das liefert mir einen Syntaxfehler bei "CURRENT_TIMESTAMP". Das Manual macht unter TIMESTAMP Properties Prior to MySQL 4.1 eigentlich nicht den Eindruck, daß CURRENT_TIMESTAMP in dieser Version noch nicht bekannt ist. Zumindest die Abfrage SELECT CURRENT_TIMESTAMP(); funktioniert ja.

Wo liegt das Problem? Wie kann ich es lösen?

Grüße,

Alex

  1. Hallo

    Ich habe Probleme beim Erstellen einer Tabelle unter MySQL 4.0.27.

    CREATE TABLE thetable (
      date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
    );

    
    >   
    > Das liefert mir einen Syntaxfehler bei "CURRENT\_TIMESTAMP". Das Manual macht  
      
    [...] irrelevanter Handbucheintrag.  
      
    
    > Wo liegt das Problem?  
      
    Deine Version unterstützt diesen Default-Wert nicht, dass geht erst ab MySQL 4.1.2, siehe  <http://dev.mysql.com/doc/refman/4.1/en/create-table.html#id2816669>  
      
    
    > Wie kann ich es lösen?  
      
    Durch ein Update Deines MySQL-Servers. Ein Update auf Version 4.1 oder besser auf 5.0 ist allerdings nicht ohne und will genau geplant, getestet und durchgeführt sein. Es kann sogar notwendig sein, die Anwendung umzuschreiben, da es inkompatible Änderungen gab.  
      
      
    Freundliche Grüße  
      
    Vinzenz
    
    1. Grüß Dich Vinzenz!

      Das liefert mir einen Syntaxfehler bei "CURRENT_TIMESTAMP". Das Manual macht

      [...] irrelevanter Handbucheintrag.

      Ich finde es generell echt nicht einfach in diesem Handbuch das zu finden, was ich suche. Gut, daß Du Dich besser auskennst. :-)

      Wo liegt das Problem?

      Deine Version unterstützt diesen Default-Wert nicht, dass geht erst ab MySQL 4.1.2, siehe  http://dev.mysql.com/doc/refman/4.1/en/create-table.html#id2816669

      Mist, das hatte ich befürchtet.

      Wie kann ich es lösen?

      Durch ein Update Deines MySQL-Servers. Ein Update auf Version 4.1 oder besser auf 5.0 ist allerdings nicht ohne und will genau geplant, getestet und durchgeführt sein. Es kann sogar notwendig sein, die Anwendung umzuschreiben, da es inkompatible Änderungen gab.

      Am liebsten wäre mir ja, wenn 1&1 auf die Version aktualisieren könnte, auf der das Programm bei einem anderen Provder bisher lief. Mal sehen, ob sie das machen.

      Danke für Deine Hilfe!

      Grüße,

      Alex

      1. Moin!

        Am liebsten wäre mir ja, wenn 1&1 auf die Version aktualisieren könnte, auf der das Programm bei einem anderen Provder bisher lief. Mal sehen, ob sie das machen.

        Eigentlich sollte MySQL 5 auch bei 1&1 verfügbar sein, 4.1 ist es auf jeden Fall - man muß nur die richtige Version im Kundenmenü auswählen (Webhosting) oder installieren (Rootserver). :)

        - Sven Rautenberg

        --
        "Love your nation - respect the others."
        1. Grüß Dich Sven.

          Am liebsten wäre mir ja, wenn 1&1 auf die Version aktualisieren könnte, auf der das Programm bei einem anderen Provder bisher lief. Mal sehen, ob sie das machen.

          Eigentlich sollte MySQL 5 auch bei 1&1 verfügbar sein, 4.1 ist es auf jeden Fall - man muß nur die richtige Version im Kundenmenü auswählen (Webhosting) oder installieren (Rootserver). :)

          Du hast recht, beim Erstellen der DB kann man zwischen 4.0 und 5.0 auswählen. Wußte ich gar nicht, weil jemand anders die Datenbank schon erstellt hatte. Hmm, eine 4.1 ist aber trotzdem nicht dabei. :-(

          Grüße,

          Alex

          1. Hallo Alex,

            Du hast recht, beim Erstellen der DB kann man zwischen 4.0 und 5.0 auswählen. Wußte ich gar nicht, weil jemand anders die Datenbank schon erstellt hatte. Hmm, eine 4.1 ist aber trotzdem nicht dabei. :-(

            wenn Du 5.0 nutzen kannst, dann nutze 5.0. Hat Deine Anwendung Kompatibilitätsprobleme mit 5.0?

            Es wäre eine gute Idee, über eine Entwicklungsumgebung zu verfügen, in der Du die diversen Versionen testen kannst. Das ist einer der Gründe, warum ich XAMPP als Entwicklungsumgebung _nicht_ schätze.

            Freundliche Grüße

            Vinzenz

            1. Grüß Dich Vinzenz.

              Du hast recht, beim Erstellen der DB kann man zwischen 4.0 und 5.0 auswählen. Wußte ich gar nicht, weil jemand anders die Datenbank schon erstellt hatte. Hmm, eine 4.1 ist aber trotzdem nicht dabei. :-(

              wenn Du 5.0 nutzen kannst, dann nutze 5.0. Hat Deine Anwendung Kompatibilitätsprobleme mit 5.0?

              Das weiß ich (noch) nicht. Es ist auch nicht meine eigene Anwendung, was eine Vorabbeantwortung dieser Frage etwas erschwert. Ich werde jetzt mit 5.0 testen und schauen, was ggf. repariert werden muß.

              Grüße,

              Alex

      2. Hallo Alex,

        Durch ein Update Deines MySQL-Servers. Ein Update auf Version 4.1 oder besser auf 5.0 ist allerdings nicht ohne und will genau geplant, getestet und durchgeführt sein. Es kann sogar notwendig sein, die Anwendung umzuschreiben, da es inkompatible Änderungen gab.

        Am liebsten wäre mir ja, wenn 1&1 auf die Version aktualisieren könnte, auf der das Programm bei einem anderen Provder bisher lief. Mal sehen, ob sie das machen.

        insbesondere wenn man sich die netten Hinweise auf den MySQL-Seiten ansieht, dass die Unterstützung für MySQL 4.1 allmählich ausläuft und ein Upgrade auf 5.0 oder (meiner Meinung nach noch voreilig) auf 5.1 empfohlen wird. Von MySQL 5.1 gibt es erst einen Release Candidate und auf einer anderen Seite rät MySQL verständlicherweise vom Einsatz dieses RCs in einer Produktivumgebung ab.

        Solche Inkonsistenzen in der Informationspolitik sind nicht vertrauensfördernd. Ich persönlich bevorzuge hier den konservativen Ansatz und empfehle ein Upgrade auf 5.0. Wie bereits erwähnt, ist das nicht unproblematisch - insbesondere wegen des Character-Set-Supports ab Version 4.1, siehe Handbuch, Kapitel 8.

        Dazu gibt es in den Versionen 4.1 und 5.0 viele erfreuliche Erweiterungen, wie Subselects, Stored Functions und Procedures, Views, Trigger, ... und ab 5.0.12 eine ordentliche Join-Umsetzung, die allerdings diverse Altanwendungen bricht ...

        MySQL 4.0.x ist jedenfalls archaisch.

        Freundliche Grüße

        Vinzenz

    2. echo $begrüßung;

      Wo liegt das Problem?
      Deine Version unterstützt diesen Default-Wert nicht, dass geht erst ab MySQL 4.1.2,

      Davor war das Verhalten eines TIMESTAMP-Feldes genau festgelegt und nicht änderbar. Es stellt sich von selbst auf den aktuellen Wert, wenn man NULL übergibt oder die Spalte komplett unberücksichtigt lässt. Voraussetzung ist, dass es die erste TIMESTAMP-Spalte der Tabelle ist.

      echo "$verabschiedung $name";