2012-06-11 2 views
5

Ist es möglich, zusätzlichen Code in eine MySQL-Tabellenerstellung zu schreiben, die es nach X Zeit fallen lassen? Wie eine temporäre Tabelle, aber es wird länger dauern.MYSQL Tabelle fallen nach x Stunden

Ich brauche Tabellen für temporäre Aufgaben zu erstellen, aber ich brauche sie als eine Sitzung länger dauern

+0

Was versuchen Sie zu erreichen? Irgendeine Form von Caching? – mensi

+0

Im Erstellen einer Möglichkeit für Menschen, CSV-Dateien hochzuladen. Nach dem Hochladen müssen sie auswählen, welchen Inhalt sie für welches Feld haben und Dinge manipulieren (ähnlich wie Mailchimp oder Kampagnenmonitor). Ich kann nicht sehen, dass dies mit temporären Tabellen funktioniert, weil sie in der Lage sein müssen, manipuliert zu werden, dann übertragen und fallen gelassen werden. Aber wenn jemand diesen Vorgang nicht beendet, sitzen die Tische voller Daten herum – cardi777

Antwort

4
CREATE EVENT myevt 
     ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 HOUR 
     DO 
     DROP TABLE IF EXISTS MyTable; 
1

In Ihrem Fall mit den CSV-Dateien, ich habe gegen die Schaffung einer Datenbanktabelle während des Setup-Prozesses beraten würde , da dies Ihr DBMS unnötig belastet. Ein besserer Weg, dies zu tun wäre:

  1. Verschieben hochgeladene Datei „incoming“ Verzeichnis
  2. Parse ersten paar Bytes der CSV Anzahl der Spalten und zusätzliche Daten, die Sie
  3. Lassen Sie den Benutzer Sachen zuweisen müssen, um bestimmen
  4. lesen CSV-Datei DB in der Art und Weise braucht Ihre Anwendung es
  5. Datei löschen

um die CSV-Dateien zu bereinigen, können Sie Verwenden Sie einen Cronjob, um alte Dateien zu löschen: find /dir/with/csv/files -type f -cmin +TIMEINMINUTES -delete