Duplicata d'une clé primaire

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Duplicata d'une clé primaire

Re: Duplicata d'une clé primaire

par yann18 » 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";

Re: Duplicata d'une clé primaire

par maestro1303 » 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

Re: Duplicata d'une clé primaire

par Elie » 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

Duplicata d'une clé primaire

par maestro1303 » 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