par
Victor BRITO » 15 nov. 2007, 17:06
Le champ id est un auto incremente.
Auquel cas il vaut mieux lui attribuer une clé primaire.
Y a-t-il, par hasard, des colonnes qui peuvent recevoir comme valeurs des chaînes de caractères pouvant apparaître plusieurs fois (comme les prénoms, par exemple) ? Dans ce cas, ces colonnes doivent recevoir une clé d'index unique.
L'attribution de clés peut s'effectuer lors de la création d'une table :
Code : Tout sélectionner
CREATE TABLE ma_table (
id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
prenom TEXT NOT NULL,
PRIMARY KEY (id),
UNIQUE KEY (prenom (255))
);
Avec ce code, je crée une table ma_table comportant deux colonnes, id et prenom, et j'attribue une clé primaire à id et une clé d'index unique à prenom. Le (255) indique le nombre de premiers caractères pris en compte dans la vérification de l'unicité de la valeur du champ (dans ce cas, les 255 premiers caractères) ; il doit être indiqué si la clé unique porte sur une colonne de type TEXT ou BLOB (pour les autres types de colonne, il est omis).
[quote="angebleu17"]Le champ id est un auto incremente.[/quote]
Auquel cas il vaut mieux lui attribuer une clé primaire.
Y a-t-il, par hasard, des colonnes qui peuvent recevoir comme valeurs des chaînes de caractères pouvant apparaître plusieurs fois (comme les prénoms, par exemple) ? Dans ce cas, ces colonnes doivent recevoir une clé d'index unique.
L'attribution de clés peut s'effectuer lors de la création d'une table :
[code]CREATE TABLE ma_table (
id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
prenom TEXT NOT NULL,
PRIMARY KEY (id),
UNIQUE KEY (prenom (255))
);[/code]
Avec ce code, je crée une table ma_table comportant deux colonnes, id et prenom, et j'attribue une clé primaire à id et une clé d'index unique à prenom. Le (255) indique le nombre de premiers caractères pris en compte dans la vérification de l'unicité de la valeur du champ (dans ce cas, les 255 premiers caractères) ; il doit être indiqué si la clé unique porte sur une colonne de type TEXT ou BLOB (pour les autres types de colonne, il est omis).