Zum Inhalt springen

Update auf Timestamp-Colum


hbspike

Empfohlene Beiträge

Hallo zusammen.

Ich habe da ein etwas komisches Problem, was ich nicht ganz nachvollziehen kann.

Ich habe eine "Nachrichten"-Tabelle mit 2 Timestamp-Columns. Einmal

nachrichten_recieve_timestamp und

nachrichten_read_timestamp

Nun bin ich soweit das ich Nachrichten zwischen Usern hin- und herschicken kann. Sie lesen und löschen kann.

Das Problem nun ist, das ich gerne einen "gelesen"-Zeitstempel incl. Statusänderung realisieren will.

Beim anschauen einer Nachricht, soll der "nachrichten_read_timestamp" wenn noch nicht vorhanden auf den aktuellen Timestamp gesetzt werden.

Mein SQL-Statement hierfür :

UPDATE Nachrichten set nachrichten_status=1,nachrichten_read_timestamp='2012-12-03 09:47:34.761' WHERE nachrichten_id=46
Mein eigentliches Problem ist nun, das sowohl nachrichten_read_timestamp als auch nachrichten_recieve_timestamp auf den aktuellen Timestamp gesetzt wird. Warum passiert das? Hat da wer eine Idee? Mfg Chris Edit: Meine Tabellendefinition:
create table Nachrichten (

  nachrichten_id                int(10) not null auto_increment, 

  nachrichten_sender            int(10) not null, 

  nachrichten_betreff           int(10) not null, 

  nachrichten_status            int(10) default 0 not null, 

  FK_postkorb_id                int(10) not null, 

  nachrichten_empfaenger        int(10) not null, 

  nachrichten_recieve_timestamp timestamp not null, 

  nachrichten_read_timestamp    timestamp null, 

  nachrichten_content           longtext not null, 

  primary key (nachrichten_id), 

  unique index (nachrichten_id), 

  index (nachrichten_sender)) CHARACTER SET UTF8; 

Bearbeitet von hbspike
Link zu diesem Kommentar
Auf anderen Seiten teilen

Wie soll das funktionieren? Bzw. aus welchem Grund sollte das so sein?

Ich vermute auch eher, dass da im Hintergrund ein Trigger mit läuft, ein klar definiertes Update auf eine Spalte setzt ja keine andere Spalte mit um - und wenn du den Datensatz bereits angelegt hast ist dein receive Timestamp ja schon "NOT NULL" und dementsprechend die Bedingung erfüllt (sonst hättest du den Datensatz ja gar nicht anlegen können)

Deine Aussage erscheint also nicht korrekt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Warum Timestamp ?

Für mich liest sich das als wolltest du da ein Datum, nicht einen Timestamp.

Ein Timestamp ist ein 8 Byte Hex value. Das wird / wurde oft für row-versioning benutzt wie man das bei Datawarehouse und replications braucht (heute würde man da ROWVERSION benutzen, alles andere ist legacy code). Wenn es dir um ein wirkliches Datum geht, nimm lieber datetime oder datetime2. (Datetime2 ist schlicht genauer als Datetime)

Damit sparst du dir viele eventuell später aufkommende Probleme.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Das wird / wurde oft für row-versioning benutzt wie man das bei Datawarehouse und replications braucht (heute würde man da ROWVERSION benutzen, alles andere ist legacy code).

Nur, wenn man in einer perfekten Welt lebt, und davon ausgeht, dass man niemals den Server wechselt, niemals restoren muss, niemals die DB wechselt...

Legacy code... :rolleyes:

Dim

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...