Page 1 sur 1

Duplicata d'une clé primaire

Posté : 14 juin 2014, 11:39
par maestro1303
Bonjour tout le monde,
Est ce qu'il y aurait une manière d'éviter d'avoir dans MySQL le message suivant:

Code : Tout sélectionner

Duplicata du champ '18293' pour la clef 'PRIMARY'
successif à un Update.

En d'autres termes y aurait il un moyen de ne faire l'update quand c'est possible et quand c'est pas possible 'ne rien faire'.

Excusez mon ignorance surtout qu'il ne doit pas être professionnel de triturer la clé primaire.

Merci infiniment

Re: Duplicata d'une clé primaire

Posté : 14 juin 2014, 14:27
par Elie
Euh bah une clé primaire n'est pas lié a un AUTO_INCREMENT ?
Normalement quand tu met a jour une table, tu touches pas a cette valeur

Re: Duplicata d'une clé primaire

Posté : 15 juin 2014, 08:55
par maestro1303
Bonjour

A supposer que j'ai une table T1(clé, ch1,ch2,ch3,ch4) et une autre table T2(clé, ch1,ch2,ch3) et que je veux insérer des enregistrements de T2 dans T1, sauf au cas où la même clé n'est pas là.

Comment faire dans ce cas avec IF?

Merci

Re: Duplicata d'une clé primaire

Posté : 15 juin 2014, 13:25
par yann18
Bonjour

A supposer que j'ai une table T1(clé, ch1,ch2,ch3,ch4) et une autre table T2(clé, ch1,ch2,ch3) et que je veux insérer des enregistrements de T2 dans T1, sauf au cas où la même clé n'est pas là.

Comment faire dans ce cas avec IF?

Merci
si le nombre de champs de la table de destination(T1) est inférieur ou égal au nombre de la table source(T2):

--copie de l'enregistrement 4  T2 dans t1
"INSERT INTO T1(cle, ch1,ch2, ch3) 
SELECT * FROM (SELECT cle, ch1,ch2, ch3 FROM T2 ) as resultatT2
WHERE NOT EXISTS ( 
		   SELECT id FROM T1 WHERE id=4
) LIMIT 1";