MYSQL Tabellen Name ändern und speichern / reseten

DonDemf

Erfahrenes Mitglied
Hallo Leute,
ich habe eine Tabelle mit dem namen "Spieler". In dieser Tabelle gibt es folgende aufteilung:

Name | Tore | Gkarten | Rkarten | GRkarten

BSP:

Torres | 11 | 2 | 3 | 2

Es ist eine statistik für eine Ligaseite.

Nun soll es möglich werden, die aktuelle Statistik, die in der Tabelle eingetragen ist abzuspeichern, da die aktuelle Saison vorbei ist. Sprich die Tabelle soll genau so wie sie nun ist gespeichert werden als "Spieler_Saison1", damit sie in Zukunft noch aufrufbar ist. Die Tabelle "Spieler" soll dann wieder resetet werden.

Wenn dann die nächste Saison vorbei ist und man die Statistik wieder speichern möchte, dann soll das selbe geschehen, nur soll dann die neue Tabelle "Spieler_Saison2" erstellt werden, damit "Spieler_saison1" nicht überschrieben wird.

Ich hoffe, dass ich mein Problem gut dargestellt habe und bedanke mich im voraus.
 
ICh kann mir nicht denken das es in einem Rutsch geht dies zu bewerkstelligen.

Es gibt dafür aber verschiedene Befehle für MySQL.

ERstellen des Archivs mit gleichen Spalten:
SQL:
CREATE neuertablename LIKE altertablename

Dann alle Datensätze dort rein schreiben:

SQL:
INSERT INTO neuertablename SELECT * FROM altertablename

Ungetestet^^

Dann kannst du dir mit einem Script die Tabellennamen ausgeben lassen und prüfen ob die Nummer schon vorhanden. Dies machst du am besten mit einer weiteren Tabelle. Dort schreibst du rein welche Tabellen du schon Archiviert hast, und kannst den primary_key als Zähler nutzen.
 
Also wenn es so sein muss, wie du schreibst, dann wird es etwa so gehen, wie Maniac es beschrieben hat.

Wenn ich es zu machen hätte, würde ich allerdings in der Tabelle Spieler eine zusätzliche Spalte "Saison" einfügen.

So musst du nichts resetten, sondern hast alle Daten zusammen. Lediglich die Abfrage musst du dahingehend erweitern, dass sie eben noch die Saison mit abfragt bzw. abspeicherst.

Und wenn du irgendwann Zugriff auf alle gespeicherten Daten haben möchtest (wie es dein Text ja erahnen lässt), dann hast du alles schön zusammen in einer Tabelle.
 
ja, dann habe ich aber irgendwann zich tausend Spieler in einer tabelle.

Momentan gibt es circa 3000 verschiedene Spieler. Wenn ich die dann jedes mal mit Saison1, 2 etc erweitere habe ich ja bald über 10.000 Einträge...
 
Deswegen verwendest du ja eine Datenbank, die wird auch mit mehreren hunderttausend Spielern kein Problem haben.

Hab gerade mal gegoogelt :-)
http://www.traum-projekt.com/forum/...performance-riesiger-mysql-tabelle-35mio.html

Wenn der Kollege hier erst bei 35 Millionen Datensätzen auf die Idee kommt, ne Frage wegen der Performance zu stellen, musst du dir - glaube ich - gerade nicht wirklich schon Sorgen machen :-)

Wenn ich deine Aufgabe zu lösen hätte, würde ich alles in eine Tabelle laufen lassen.
 
Ich stimme meinen Vorredner zu, dass es auch mit einer Tabelle keine Probleme macht. Aber der Vollständigkeit halber:

SQL:
CREATE TABLE Spieler_Saison1 SELECT * FROM Spieler;
 
Zurück