Hallo,
hab ein Problem und würde mich freuen, wenn mir hier jemand etwas weiter helfen könnte, da mySQL für mich quasi ein buch mit sieben siegeln ist:
hab eine table mit ca. 600MB größe und 6 mill einträgen. Nun sind diese jedoch nicht alle unique, wobei für mich wichtig ist, daß 2 spalten, nämlich id und keyw unique sind (während es bei den anderen egal ist).
Daher dachte ich am einfachsten wird es sein, die tabelle einfach in ne neue einzufügen bei der ich das feld id und keyw auf unique setze.
Hab somit das versucht:
insert into new_table select * from old_table
bekomme aber immer den fehler:
#1062 - Duplicate entry 'cellvalue' for key 2
Scheint wohl so zu sein, daß mysql sich selbst stoppt wenn der erste nicht-unique value auftritt.
Hat irgendeiner ne Idee wie ich das beheben kann? Und hat eventuell noch jemand ne idee wie ich während des Übertragens bei werten in der spalte keyw die einen Bindestrich enthalten, diesen durch ein leerzeichen ersetzen kann?
Zu guter letzt noch: Hab das ganze mit einer php-lösung versucht (weil ich eben nicht weiß wie man obig angeführtes Ersetzen über mysql macht) und das ist so was von langsam, da mysql so sehr lahmt, doch eigentlich sollten doch 600 MB nicht so tragisch sein, oder? Ich mein das ganze läuft auf einem AMD 3,8 Dual Core mit 2 GB Ram unter Debian und der server arbeitet rein dafür (soll heißen es geschieht sonst gar nichts am server ausser dem script). Hat irgendwer tips wie man das verbessern könnte?
Danke im Voraus
hab ein Problem und würde mich freuen, wenn mir hier jemand etwas weiter helfen könnte, da mySQL für mich quasi ein buch mit sieben siegeln ist:
hab eine table mit ca. 600MB größe und 6 mill einträgen. Nun sind diese jedoch nicht alle unique, wobei für mich wichtig ist, daß 2 spalten, nämlich id und keyw unique sind (während es bei den anderen egal ist).
Daher dachte ich am einfachsten wird es sein, die tabelle einfach in ne neue einzufügen bei der ich das feld id und keyw auf unique setze.
Hab somit das versucht:
insert into new_table select * from old_table
bekomme aber immer den fehler:
#1062 - Duplicate entry 'cellvalue' for key 2
Scheint wohl so zu sein, daß mysql sich selbst stoppt wenn der erste nicht-unique value auftritt.
Hat irgendeiner ne Idee wie ich das beheben kann? Und hat eventuell noch jemand ne idee wie ich während des Übertragens bei werten in der spalte keyw die einen Bindestrich enthalten, diesen durch ein leerzeichen ersetzen kann?
Zu guter letzt noch: Hab das ganze mit einer php-lösung versucht (weil ich eben nicht weiß wie man obig angeführtes Ersetzen über mysql macht) und das ist so was von langsam, da mysql so sehr lahmt, doch eigentlich sollten doch 600 MB nicht so tragisch sein, oder? Ich mein das ganze läuft auf einem AMD 3,8 Dual Core mit 2 GB Ram unter Debian und der server arbeitet rein dafür (soll heißen es geschieht sonst gar nichts am server ausser dem script). Hat irgendwer tips wie man das verbessern könnte?
Danke im Voraus
Kommentar