Linus: täglich, einmalig eine Zeile mit Datum erstellen

Ich möchte einen Tageszähler erstellen.

**UPDATE zaehler SET startseite = startseite+1 **

Der Zähler zählt jetzt jeden Aufruf, fortwährend. Jetzt habe ich ein zusätzliche Datums Feld eingefügt, so das ich jeden Tag zählen kann.

**UPDATE zaehler SET startseite = startseite + 1 WHERE datum=:datum **

Also lege ich für jeden Tag eine neue Zeile in der Datenbank an. Aber das ist mein Problem.

Wie kann ich diese Feld (Datum) einmalig erstellen, so das es da ist.

Oder muss ich bei jeder Abfrage, fragen ob das Datum da ist, und wenn nicht es erstellen.

Linus

  1. Wie kann ich diese Feld (Datum) einmalig erstellen, so das es da ist.

    INSERT ... ON DUPLICATE KEY UPDATE

    1. Ist das so korrekt?

      **INSERT INTO zaehler (datum) VALUES ('2020-05-27')

      ON DUPLICATE KEY UPDATE startseite = startseite + 1;**

      1. Hallo Linus,

        sowas probiert man im Zweifelsfall mit phpmyadmin oder der mysql workbench einfach mal aus.

        Was ist mit dem Wert für startseite im Insert-Fall? Hast Du für diese Column einen Defaultwert gesetzt? Denn die Duplicate Klausel wird nur ausgeführt wenn es das Datum schon gibt. Und Du brauchst natürlich einen unique key auf der Datum-Spalte, sonst funktioniert es nicht.

        Ich würde den Wert für startseite im INSERT explizit setzen:

        INSERT INTO zaehler (datum, startseite) VALUES ('2020-05-27', 1)
        ON DUPLICATE KEY UPDATE startseite = startseite + 1;
        

        Rolf

        --
        sumpsi - posui - obstruxi
  2. Hallo Linus,

    guckst Du Handbuch...

    Rolf

    --
    sumpsi - posui - obstruxi