Piere: Duplicate entry Mysql

Beitrag lesen

HI,

Gruss zurück.

Hab ein kleines Problem mit 'Duplicate entry'
ich möchte "sinnig" alle doppelten Inhalte aus der Spalte "titel" entfernen.

Google sagt zwei Möglichkeiten:

CREATE TABLE neuetabelle (titel VARCHAR(255) not null) SELECT DISTINC titel FROM buch_titel;

Legt eine neue Tabelle an und schreibt the titel da rein.

ALTER IGNORE TABLE buch_titel ADD UNIQUE INDEX(titel);

Damit wird UNIQUE INDEX auf titel angelegt, wobei durch IGNORE alle doppelten Einträge bis auf einen (den letzten?) gelöscht werden, damit der index auch wirklich UNIQUE ist. Wobei es dann bei der Struktur der Tabelle ein Problem gibt:

titel   longtext   Nein

da AFAIK 'longtext' nicht UNIQUE INDEX sein kann. Dann also vorher noch den typ von titel ändern, und zwar so:

ALTER CHANGE TABLE buch_titel titel titel CHAR(255) NOT NULL;
  ALTER IGNORE TABLE buch_titel ADD UNIQUE INDEX(titel);

Ich nehme dabei an, dass 255 eine ausreichende Länge für einen Buchtitel ist ;) Auch nehme ich an, dass alle whitespace chars aus den Titeln raus sind... Alle Titel die Länger als 255 Zeichen sind, werden auf 255 Zeichen gekürzt.

Problem  das die Db eine Größe von 97,2 MB hat.

Don't try this at home!

:)