mmofacts.com

Datenbank Teilweise resetten

gepostet vor 17 Jahre, 5 Monate von sollowman
Hallo,
Ich möchte für mein Spiel eine Datenbank teilweise resetten.
Das heißt im Klartext die User und Mailadressen sollen erhalten bleiben,
nur die Punkte auf null gesetzt werden. Das sind 2 Spalten in der
user Tabelle. Leider kenn ich mich damit nicht soweit aus, bzw. habe
keinen Ansprechpartner der mir das erklären könnte.
MfG
gepostet vor 17 Jahre, 5 Monate von Amun Ra

Das versteh ich jetzt nicht.
Was ist denn mit deinem Kollegen Atrox ?!
Ich meine mit seinen Qualifikationen
sollte sich dieses doch triviale Problem leicht lösen lassen.
dev.mysql.com/doc/refman/5.1/en/update.html
gepostet vor 17 Jahre, 5 Monate von sollowman
Hehe schon,
Ich bin leider kein Datenbankkünstler und muss das irgentwie nun alleine klären.
Leider spinnt mein ICQ total ( siehe anderes Forum ).
Würde mich aber eher über eine Hilfe als solche Kommentare freuen, danke.
gepostet vor 17 Jahre, 5 Monate von Klaus
Ohne Kenntnisse über das Spiel können wir leider nichts genaues sagen.
/me schließt sich dem Spam an.
gepostet vor 17 Jahre, 5 Monate von Amun Ra
Klick mal den Link an,
der ist äußerst hilfreich.
gepostet vor 17 Jahre, 5 Monate von unverbraucht
Original von sollowman
Hallo,
Ich möchte für mein Spiel eine Datenbank teilweise resetten.
Das heißt im Klartext die User und Mailadressen sollen erhalten bleiben,
nur die Punkte auf null gesetzt werden. Das sind 2 Spalten in der
user Tabelle. Leider kenn ich mich damit nicht soweit aus, bzw. habe
keinen Ansprechpartner der mir das erklären könnte.
MfG

Also ohne Details ist das wirklich nicht leicht und ich übernehm keine Gewähr falls was flöten geht, aber so geht das in etwa:
update user set punkte=0;
wobei du "punkte" durch den Namen der Punkte-Spalte ersetzen solltest. Das gleiche machst du dann mit der 2. Punkte-Spalte. Wenn du die Namen nicht kennst, kannst du zuerst mit
show columns from user;
alle Spalten anzeigen lassen, oder aber mit
select * from user limit 20;
dir die ersten 20 Zeilen als Stichprobe ausgibt. Das sagt meistens mehr als die Spaltenbeschreibung, wenn man die DB-Struktur nicht selbst erschaffen hat. Achtung: Inhalte, die du überschreibst, gehen unwiederbringlich verloren.
gepostet vor 17 Jahre, 5 Monate von knalli
Nana, nicht so gemein. Wer lieb fragt, kriegt auch eine liebe Antwort..
Man könnte auch sagen - die Lösung ist: X mal UPDATE spieler SET punkte=0, skills=0 ausführen.
Aber,
* X musst du bestimmen
* für jedes X. Query musst du eine eigene Lösung basteln
* für jedes X. "spieler" ist immer eine andere Zeichenfolge
* für jedes X. Query: die Anzahl der Spalten, die Namen und vor allem ihr Initialwert sind unterschiedlich, also auch nochmal extra zu finden
* ggf. gibt es noch andere Resets, die nicht mit einem Update zu erledigen sind.
* ich hab bestimmt noch etwas vergessen
Ansonsten kannst du aber die obige Lösung nutzen. Die "funktioniert" ansonsten.
gepostet vor 17 Jahre, 5 Monate von HSINC
naja ich hingegen rate dir, wenn du dich nicht mit datenbanken auskennst, lass die finger davon.
besorg dir ne kopie und teste/spiele lokal daran rum, so das im zweifelsfall keine daten im produktivsystem verloren gehen. lies dir dazu die mysql doku durch, es gibt sicherlich im netz auch mysql anleitungen für neulinge. erst wenn du dich fit fühlst und weist was du machst, kannst du dann am produktivsystem rumschrauben. vorher wird es nur grütze.
in deinem speziellen fall jetzt, würde ich ohne genaue kentniss der datanbankstruktur auch keine tipps abgeben wollen. es kann sein das die obrigen tipps funktionieren, es kann aber auch sein das man damit daten ins nirvana ballert. vor allem grade wenn man nicht weiss was man macht
gepostet vor 17 Jahre, 5 Monate von Todi42
@Knalli, wieso X-mal das update ausführen. Wenn er in einer Tabelle für alle Zeilen zwei Spalten mit neuen Werten versehen möchte und die Datenbank SQL kann, sollte es mit dem einem update getan sein.
gepostet vor 17 Jahre, 5 Monate von AtroX
So ein Quatsch, sollowman, ich hab dir doch gestern noch die SQL-Abfrage gezeigt...
€: @Knalli, ich versteh deine Vorgehensweise ehrlich gesagt kein bisschen. Es handelt sich nur eine einzige Tabelle, in der jeder Datensatz einen Benutzer darstellt und die Felder die einzelnen Werte wie eMail-Adressen, Punkte etc. enthalten. Da kannste sowas simples wie
UPDATE benutzertabelle SET feld1 = [der gewünschte Initialwert] WHERE 1
machen. Warum einfach, wenn's auch kompliziert geht?!
MfG AtroX
gepostet vor 17 Jahre, 5 Monate von Klaus
Gibt es denn keine Tabellen für Gebäude, Einheiten, Private Nachrichten etc.?
Die hätte man einfach leeren müssen (TRUNCATE).
Ich verstehe allerdings auch nicht was Knalli da feiert.
gepostet vor 17 Jahre, 5 Monate von AtroX
Original von Klaus
Gibt es denn keine Tabellen für Gebäude, Einheiten, Private Nachrichten etc.?
Die hätte man einfach leeren müssen (TRUNCATE).

Nee, ist ja nur en einfaches Diebspiel *schäm*
gepostet vor 17 Jahre, 5 Monate von HSINC
Original von AtroX
Nee, ist ja nur en einfaches Diebspiel *schäm*

das hätte man wohl dazu sagen sollen das es sich hier nicht um eine komplexe db struktur handelt
gepostet vor 17 Jahre, 5 Monate von Nuky
Knalli hat wohl an relationale Datenbanken gedacht.
Aber schön dass das Problem gelöst werden konnte
gepostet vor 17 Jahre, 5 Monate von knalli
Ach, eine Tabelle
Ich wollt einen schönen Post feiern, der immer funktioniert.. egal wie groß. Weil so hatte ich die Frage verstanden, a la wie programmiere ich ein Browsergame.

Auf diese Diskussion antworten