Duplicata d'une clé primaire

Eléphanteau du PHP | 14 Messages

14 juin 2014, 11:39

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

Mammouth du PHP | 1339 Messages

14 juin 2014, 14:27

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
Bon sinon tu me fais un message privé et on se fait un TeamViewer

Eléphanteau du PHP | 14 Messages

15 juin 2014, 08:55

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

Mammouth du PHP | 571 Messages

15 juin 2014, 13:25

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";