[MySQL] Duplicate Entry

Muuhmann

Lieutenant
Registriert
Sep. 2004
Beiträge
782
Hallo,

ich bin hier grade dabei meine WBBlite-Datenbank auf einen anderen Server zu "kopieren"... nun habe ich zwar leider keinen Zugriff auf die Dateien(!) von MySQL, die für die Datenbank zuständig sind, sonder muss alles über Export -> Import/SQL-Fenster regeln.

Ich bin mittlerweile auch schon bei den Tabellen bb1_wordlist und bb1_wordmatch angekommen, diese beinhalten aber leider insgesamt über 300.000 Datensätze.

Da mein Server eine max. Ausführungszeit von 10 sek. hat, kann ich natürlich nicht alles auf einmal exportieren bzw importieren.. deswegen wollte ich es Schrittweise machen.. hat ja schließlich bei der Tabelle bb1_posts auch geklappt..

Sobald ich jetzt aber bb1_wordlist in die neue Datenbank einfügen will kommt so ein Fehler wie auf dem angehängten Bild.

Gut, dachte ich mir, lässte den Eintrag halt weg, und prompt war der gleiche Fehler wieder da, aber nur bei nem anderen Wort.

Ich schätze mal, dass das etwas mit dem Zeichensatz oder sonstigem Zutun haben muss, weiß aber nicht wie ich das jetzt hinbekomme, dass es praktisch ohne Fehler abläuft..
Ich schätze mal, dass die Daten immer in unterschiedlichen Kodierungen, z.b. einmal ISO-8859-15, dann ISO-8859-1, dann wiederum UTF-8 etc... Das habe ich rausgefunden, indem ich das SQL-Fenster in einem eigenen Fenster aufgemacht habe und dort die Kodierung im Browser geändert habe.. danach gingen alle (also nur 2500) Eintrage rein, beim nächstern 2500er-Packen wiederum ging es nicht mehr so einfach und ich musste die Kodierung mehrmals ändern... aber das ist einfach zuviel aufwand..

gibt es da nciht einen einfacheren Weg?

Kann man irgendwie die Fehlermeldungen "abschalten" und einfach alles, bis auf die Fehlerhaften Eintrage übertragen? Also ein Datenverlust wäre hier nicht so schlimm... besser wäre natürlich eine 1:1 Kopie der Tabellen, aber nun ja..

Das ändern der Kollation hat auch nichts gebracht.
 

Anhänge

  • mysqlfehler.gif
    mysqlfehler.gif
    7,2 KB · Aufrufe: 191
Hi,

aus Deinem Post geht leider nicht hervor, welche Zugriffsmöglichkeiten Du bei Deinem Datenbankserver hast, aber meine Empfehlung ist ganz klar, die mySQL GUI Tools für diese Export-/Import-Funktionen zu verwenden.

http://dev.mysql.com/downloads/gui-tools/5.0.html

Damit dürfte einiges schneller und einfacher funktionieren. Tatsache ist, dass Du versuchst, doppelte Daten in unique Spalten einzutragen. Das führt zu Deiner Fehlermeldung. Der Datenbankschlüssel wird bei der alten Version der Tabelle nicht vorhanden gewesen sein, was aber bei der neuen Version zu Problemen führt.

Lösung A
Entferne VOR der Übernahme die doppelten Einträge oder verändere sie so, dass sie nicht mehr identisch sind. Das könnte man über ein Skript recht schön lösen.

Lösung B
Entferne in der neuen Tabelle den Unique Key, wenngleich ich der Meinung bin, dass der nicht umsonst vorhanden ist. Das würde ich eher nicht machen, um Dateninkonsistenzen zu vermeiden.

Grüße
Hurga
 
mh.. ne das wars nicht.

also es hatte schon was mit den Datensatzkodierungen zutun.. kann sein, dass zweimal der gleiche Eintrag aber in 2 versch. Kodierungen vorlag und das als 2 versch. gewertet wird..

naja jedenfall habe ich mir jetzt ein Tool besorgt, welches die exportiere SQL datei in mehrere, in der Größe frei definierbare, Happen zerlegt.

Dadurch war es mir möglich die Datensätze per phpmyadmin und Dateiimport in der Kodierung latin1 zu übertragen..

gut.. dadurch habe ich jetzt zwar nich mehr die korrekten wörter, sondern bei wörtern mit umlauten, z.B. die in ASCII gezeigte UTF-8 schreibweise, also z.b. statt
steht
da..

naja.. kann man nix dran ändern, und alles funktioniert wieder wie es soll.. und wenn bei der Suche mal 2-3 threads nicht angezeigt werden, nur weil das wort nicht stimmt, ists ja auch egal ;D
 
Zurück
Oben