MYSQL :Erreur INSERT multiples

Résolu/Fermé
pcsystemd Messages postés 702 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 6 novembre 2024 - 21 juil. 2009 à 11:24
pcsystemd Messages postés 702 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 6 novembre 2024 - 21 juil. 2009 à 12:32
Bonjour,

j'ai un script shell qui fait un SELECT dans une base postgresql puis un INSERT ou un DELETE dans une base Mysql. J'ai crée un index UNIQUE sur le champ mail de maniere a n'avoir qu'une entrée par mail. Cela fonctionne bien sauf que quelquefois j'ai une erreur du style :
ERROR 1062 (23000) at line 1: Duplicate entry '0-526' for key 1

et je ne vois pas d'ou bien le souci puisque normalement j'ai un IGNORE dans l'INSERT donc la ligne devrait être ignoré et l'INSERT suivant devrait ce faire hors ce n'est pas le cas.

Voici ma requete :
SELECT DISTINCT 
          LCase(e.nom) AS mail, 
          e.st 
  FROM 
          new n 
          JOIN pers* i ON (n.r_int = i.id) 
          JOIN mail e ON (e.r_pers = i.id) 
  WHERE 
          n.rf_ste IN (SELECT id FROM ste_w WHERE url_fr = 'www.toto.fr') AND 
          e.date BETWEEN '${DATSQL}' AND 'Now()' AND        
          n.st = 0 AND 
          i.st = 0 AND 
          e.st = 0 AND 
          n.id > 0 AND 
          i.id > 0 AND 
          e.id > 0        
  UNION 
  SELECT  
          LCase(e.nom) AS mail, 
          n.st 
  FROM 
          mail e, new n  
           
  WHERE  
          e.r_pers=n.r_int AND 
          n.date_mod BETWEEN '${DATSQL}' AND 'Now()' AND        
          e.st=0 AND  
          n.st=1  
          ORDER BY mail;


et mes lignes d'INSERT ou DELETE :

INSERT IGNORE INTO simp_subs (acti,mail,la) VALUES (1,'b.ty@box.fr','fr');INSERT INTO simp_nid_id (nid,id) VALUES (LAST_INSERT_ID(),526);
INSERT IGNORE INTO simp_subs (acti,mail,la) VALUES (1,'toto@frtu.com','fr');INSERT INTO simp_nid_id (nid,id) VALUES (LAST_INSERT_ID(),526);
DELETE simp_nid_id, simp_subs FROM simp_nid_id, simp_subs WHERE mail="titi@mail.fr" AND simp_subs.nid=simp_nid_id.nid;
etc..


Une idée?

Merci

1 réponse

pcsystemd Messages postés 702 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 6 novembre 2024 23
21 juil. 2009 à 12:32
Bon ok j'ai solutionné tout seul mon souci j'avais oublié un IGNORE dans la deuxieme partie de l'insert .
0