bonjour,
voici la structure de ma table;
la version de mysql que j'utilise : 5.0.32-Debian_7etch1-log
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 CREATE TABLE `perso_1` ( `unixtime` varchar(11) NOT NULL default '', `name` varchar(255) NOT NULL default '', `commentaire` varchar(255) NOT NULL default '', `files` varchar(4) NOT NULL default '', `mo` varchar(10) NOT NULL default '', PRIMARY KEY (`unixtime`), FULLTEXT KEY `name`(`name`,`commentaire`), FULLTEXT KEY `unixtime` (`unixtime`)) TYPE=MyISAM ;
type de données : unxtime -> "1182605046" etc ...
name -> "fichier-group"
commentaire > "bien", "tres.bien" etc..
files -> "2", "3" etc...
poid -> "579ko" etc...
voici mon probleme, ma table actuelle contient 2,000,000 entrée, avec malheureusement qlqs doublons relatifs sur le name ( unixtime different), j'aimerai les eliminés pour ce faire j'ai lu le tutoriel concernant les doublons relatifs, voici la requete que j'ai adapté à ma table
ca mouline mais rien ne ce passe j'ai laissé tourné une journée sans succes, j'ai tenté d'exporté les resultats dans un fichier .txt mais ce dernier reste tjr a 0bytes ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT DISTINCT * FROM perso_1 T1 WHERE EXISTS (SELECT * FROM perso_1 T2 WHERE T1.unixtime <> T2.unixtime AND T1.name = T2.name);
j'opte pour une autre solution, créé une nouvelle tabe (perso_2) sur l'idée de la premiere mais en ajoutant la contrainte unique:
Code : Sélectionner tout - Visualiser dans une fenêtre à part ALTER TABLE perso_2 ADD CONSTRAINT UNIQUE( `name` );cette commande fonctionne mais dès que je rencontre un doublons j'ai cette erreur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part INSERT INTO perso_2 SELECT unixtime, name, commentaire, files, mo FROM perso_1;
est t'il possible de skipé (passer outre) ces erreurs et continué l'importation?
Code : Sélectionner tout - Visualiser dans une fenêtre à part ERROR 1062 (23000): Duplicate entry 'fichier-group' for key 2
j'aimerai par la suite optimisé cette table, car les select sont assez long, j'ai pensé faire un index, mais je ne sais pas trop comment m'y prendre ... INDEX ou FULLTEXT ?
est ce bon ?
merci d'avance pour vos reponses :>
Code : Sélectionner tout - Visualiser dans une fenêtre à part CREATE INDEX part_of_name ON perso_2 (name(30));
Partager