Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2962 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [MySQL] Problème avec Replace

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[MySQL] Problème avec Replace

n°1118195
jeoff
Posté le 13-06-2005 à 12:26:56  profilanswer
 

Voici ma requête :
replace rosier (ronum,rovar,roctr,ropgf,rocam,ropal,roqte) values (8,'B743000','XXX','L','C001',34,60)
 
Structure de ma table :
Champ   Type    
ronum   int(11)      
rovar   varchar(20)
roctr   varchar(10)
ropgf   char(3)
rocam   varchar(4)
ropal   int(11)
roqte   int(10)
 
Nom de la clé   Type   Cardinalité   Champ
PRIMARY  PRIMARY  1   ronum (autoincrement)
 
Mon soucis, si l'enregistrement n'existe pas il est crée. C'est normal.
Si il existe, une ligne est mise à jour et une autre est crée !
deux lignes identiques sont crées avec la même clé primaire apparement!
 

Code :
  1. Nombre d'enregistrements insérés : 2
  2. Identifiant de l'enregistrement inséré: 8 (traitement: 0.0020 sec.)
  3. requête SQL:
  4. REPLACE rosier(
  5. ronum,
  6. rovar,
  7. roctr,
  8. ropgf,
  9. rocam,
  10. ropal,
  11. roqte
  12. )
  13. VALUES ( 8, 'B743000', 'XXX', 'L', 'C001', 34, 60 )


 
Comment est-ce possible ?
:x.
Bug ?
 
 

mood
Publicité
Posté le 13-06-2005 à 12:26:56  profilanswer
 

n°1118239
flo850
moi je
Posté le 13-06-2005 à 12:55:29  profilanswer
 

a mon avis plutot un pb de clef
verifie que ronum est bien une clef primaire , et pas un index  
 
( mais bon si il est en auto increment , normalement c al clé )


---------------

n°1118271
jeoff
Posté le 13-06-2005 à 13:32:04  profilanswer
 

bon bah j'ai redemarré tout le PC, BBD + serveur + client et pour l'instant ca à l'air "normal" mais bon ... cette histoire m'intrigue Oo
 
et ronum est bien clé primaire, je l'ai même enlevé puis remis, si ca persiste, je supprimerai carrèment le champs pour le recrée ...

n°1119148
jeoff
Posté le 14-06-2005 à 10:02:23  profilanswer
 

Mon soucis venait d'une autre requête qui n'affichait pas ce que je demandais.
 
Quand à l'histoire :
"Nombre d'enregistrements insérés : 2"
 
Ca reste un mystère vu qu'une seule de ces deux lignes apparait en BDD ...

n°1119169
flo850
moi je
Posté le 14-06-2005 à 10:19:53  profilanswer
 

ce qui est totu a fait normal si tu utilise mysql_affected_rows

Citation :

Note that when you use a REPLACE command, mysql_affected_rows() returns 2 if the new row replaced an old row. This is because in this case one row was inserted after the duplicate was deleted.


http://dev.mysql.com/doc/mysql/en/ [...] -rows.html


---------------

n°1120356
jeoff
Posté le 15-06-2005 à 09:59:12  profilanswer
 

merci beaucoup pour cette explication ;)

n°1147649
jeoff
Posté le 12-07-2005 à 11:45:42  profilanswer
 

j'ai encore une question en fait sur replace.
 
J'ai cru comprendre que lorsque l'enregistrement existait, il était simplement mis à jour.
 
Hors dans mon cas, comme l'expliques très bien flo850, mon enregistrement est systèmatiquement supprimé puis recrée.
 
Donc si ma requête Replace ne renseigne que 3 champs sur 10 dont la clé primaire, je me retrouve avec 7 champs non renseignés (valeurs par défaut) alors qu'ils pouvaientt très bien être initialisés avant  :sweat: .
 
J'ai loupé un option pour forcer un update au lieu d'un delete + insert en cas d'existence de la clé primaire ?


Message édité par jeoff le 12-07-2005 à 11:47:48

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [MySQL] Problème avec Replace

 

Sujets relatifs
Probleme .hProbleme encoding ISO-8859-1 et caractère "&"
[access - VB] problème commandeFichier .bat : problème de gestion des variables
problème de partage de BDD sous EasyPHPlivre d'or probleme personne peu m aider ??
Cours de base PHP et MYSQLprobleme d'url rewriting
problème de fichier "fphover"Problème variable php (après installation avec apache)
Plus de sujets relatifs à : [MySQL] Problème avec Replace


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR