• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

MySQL - Spalte automatisch löschen

Hallo-Welt

Aktives Mitglied
Hi,
Ich kann mir zwar die Antwort glaube ich schon denken, daber da ich bei Google nichts gefunden hab, frag ich dennoch mal nach: Kann man Spalten/Kolonnen/Tabellen/Datenbanken eigentlich automatisch nach einer gewissen Zeit nach Erstellung von mysql löschen lassen. Ich bastle mir nämlich gerade einen Login für mein privat-Forum zusammen und wollte aus Platzgründen alte, abgelaufene Sessions in der DB löschen lassen. Natürlich könnte ich theoretisch CronJobs einsetzen, welche alle paar Minuten prüfen, ob ein TimeStamp in der entsprechenden Kolonne villeicht bereits in der Vergangenkeit liegt, und dann die entsprechenden Spalten in dieser Reihe löschen, aber geht das nicht irgendwie nur mit MySQL, also als entsprechende "Funktion", um z.B. in einer Tabelle immer wieder die Zeilen zu löschen, bei welchen die erstellung z.B. wie in meinem Fall 6 Stunden zurückliegt?
 
ich hab mal eine Frage, du hast ja nun ein Login und sagen wir UserA.
UserA loggt sich ein und du schreibst die Session in die Datenbank. Wenn die Session nun abgelaufen ist muss sich UserA ja neu einloggen.

Schreibst du dann einen neuen Eintrag in die Datenbank? Wenn ja - Warum? Wäre es nicht ratsamer die alte Session einfach zu überschreiben mit der neuen.

Oder versteh ich das System gerade falsch. Aber um auf deine Frage einzugehen, mir ist von MySQL da nichts bekannt. Mir würde nun auch nur die Idee mit den CronJobs einfallen.
 
ich hab mal eine Frage, du hast ja nun ein Login und sagen wir UserA.
UserA loggt sich ein und du schreibst die Session in die Datenbank. Wenn die Session nun abgelaufen ist muss sich UserA ja neu einloggen.

Schreibst du dann einen neuen Eintrag in die Datenbank? Wenn ja - Warum? Wäre es nicht ratsamer die alte Session einfach zu überschreiben mit der neuen.
Wenn sich UserA nocheinmal irgendwann anmeldet wird eine neue Session angelegt (das Login basiert auf die IP, kann somit also in den meisten Fällen nicht die alte überschrieben werden, da sich diese geändert hat). Natürlich könnte man alte Einträge, deren Timestamp abgelaufen ist jetzt löschen, das würde jedoch unnötigen Speicherplatz belegen... und der ist schließlich begrenzt, bei meinem Ramsch-Hostangebot sogar seehr begrenzt.
Oder versteh ich das System gerade falsch. Aber um auf deine Frage einzugehen, mir ist von MySQL da nichts bekannt. Mir würde nun auch nur die Idee mit den CronJobs einfallen.
Cronjobs wäre natürlich eine möglichkeit, finde es dennoch schade, dass MySQL das (wie ich glaube) nicht selber kann, wäre viel effektiver, denke ich mal.

Falls jemandem doch noch ne Möglichkeit einfallen sollte, das umzusetzen, wäre natürlich toll.
 
ich bin vielleicht gerade etwas auf den Kopf gefallen. Tut mir leid, wenn ich nochmal abschweife... wie meinst du das mit das Login basiert auf die IP. Du speicherst also anhand der IP die Session?

Was wäre nun aber wenn UserA sich anmeldet, die Session wird geschrieben anhand der IP. nun hat UserB aber die IP von UserA weil dynamische IP etc, ist dieser denn angemeldet als UserA.

Ich habe nun doch noch was gefunden und zwar MySQL Event Scheduler, hier noch ein Link

sind anscheinend mit CronJobs gleich zu setzen, aber muss der Server Admin wohl erst aktivieren, so genau weiß ich es net. Habe gerade nur paar Zeilen mal überflogen
 
1. Wieso managest du deine sessions in der db?

2. wenn in der db warum dann nicht einfach eine spalte oder zwei beim entsprechenden user?
 
ich bin vielleicht gerade etwas auf den Kopf gefallen. Tut mir leid, wenn ich nochmal abschweife... wie meinst du das mit das Login basiert auf die IP. Du speicherst also anhand der IP die Session?

Was wäre nun aber wenn UserA sich anmeldet, die Session wird geschrieben anhand der IP. nun hat UserB aber die IP von UserA weil dynamische IP etc, ist dieser denn angemeldet als UserA.
Dass UserA plötzlich als UserB eingeloogt ist kann nicht passieren, da ja auch noch Cookies gesetzt werden. Das mit der IP ist so, da es sich um ein One-Click-Login handelt, es müssen keine weiteren Daten angegeben werden.
Ich habe nun doch noch was gefunden und zwar MySQL Event Scheduler, hier noch ein Link

sind anscheinend mit CronJobs gleich zu setzen, aber muss der Server Admin wohl erst aktivieren, so genau weiß ich es net. Habe gerade nur paar Zeilen mal überflogen
Das ist so in etwa das, was ich mir gewünscht habe. Nur ist diese Funktion in der mysql-DB meines Providers leider leider deaktiviert:
Code:
Variable_name    Value
event_scheduler  OFF
Ich werde mich auf jedem Fall mal an den Support wenden, villeicht besteht ja die Möglichkeit, es zu aktivieren.
Ansonsten behalte ich es mal im Hinterkopf: Villeicht miete ich mir ja irgendwann mal einen vServer an, da müsste es dann gehen.

1. Wieso managest du deine sessions in der db?
Macht man das denn nicht so? Einmal in Datenbank und einmal mit Cookies?
2. wenn in der db warum dann nicht einfach eine spalte oder zwei beim entsprechenden user?
Ob die Spalte des timestamps und der Logininformation nun in der User-DB steht, oder in einer anderen Tabelle spielt ja ansich keine Rolle. Ich bevorzuge es nur, eine eigene Tabelle für alle zurzeit eingeloggten User anzulegen.
 
Zurück
Oben