Page 1 sur 1
cle primaire
Posté : 05 févr. 2008, 22:18
par bruno.rotrou
slt
j'ai une bd qui représente les coordonnées des membres, j'aimerais qu'ils puissent modifier leur coor j'utilise donc la fonction UPDATE, jusque la tout vas bien. ds cette base de donnée ma clé primaire est leur adresse email.
lorsque je modifie n'importe quel champ sauf la cle, ca marche ! mais lorsque je modifie l'email, donc la clé primaire ça ne marche pas et ca ne me renvois meme pas un message erreur.
voila peut être que je ne peut pas modifier ma cle primaire avec UPDATE, peut être avec REMPLACE?
merci
A+
Posté : 05 févr. 2008, 23:20
par Rei Itchido
Eu c'est quand même plus que conseillé d'utiliser un entier comme clé primaire. Ne serait-ce que pour lier tes tables.
Posté : 06 févr. 2008, 00:03
par zeus
merci
Posté : 06 févr. 2008, 00:27
par bruno.rotrou
slt et merci pour vos conseil
j'avais entre temps entrepris des recherches et en effet c'est idiot d'avoir une clé primaire qui peut changer.
merci zeus pour l'explication qui est tres claire,
une petite question phpmyadmin me déconseille d'avoir la clé primaire sur mon champ index avec autoincrement, pourquoi?
je serais tenté d'avoir un champ index autoincrementé qui serait mon numéro de membre unique et donc ma clé primaire.....
A+
Posté : 06 févr. 2008, 00:31
par Sékiltoyai
Tu peux envoyer ta structure (celle que PMA déconseille) ?
structure
Posté : 06 févr. 2008, 08:52
par bruno.rotrou
voici la structure
-- Structure de la table `coordonnees`
DROP TABLE IF EXISTS coordonnees;
CREATE TABLE coordonnees (
`index` int(255) NOT NULL auto_increment,
nom varchar(255) NOT NULL default '',
prenom varchar(255) NOT NULL default '',
email varchar(255) NOT NULL default '',
adresse varchar(255) NOT NULL default '',
ville varchar(255) NOT NULL default '',
code_postal varchar(255) NOT NULL default '',
pass varchar(255) NOT NULL default '',
PRIMARY KEY (index),
KEY `index` (`index`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]
Posté : 06 févr. 2008, 10:44
par Sékiltoyai
Alors, 2 petites remarques :
Une taille de 255, c'est inutile pour un champ entier, mets 4, ca suffira…
Tu as mis un index et une clé primaire sur ton champ entier, mais la clé primaire fait déjà office d'index, donx l'index est inutile, donc supprime le.
Normalement c'est tout

merci
Posté : 07 févr. 2008, 07:04
par bruno.rotrou
slt
j'ignorais que la cle primaire faisait office d'index
merci A+
[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]