2010-02-20 4 views
3

J'ai quelques enregistrements que j'ai besoin de stocker dans une table de base de données et je veux distinguer un enregistrement d'autres enregistrements sur la base du champ name.Comment distinguer les lignes les unes des autres dans une table de base de données?

Mais comme le type de données du champ de nom est varchar, il affectera les performances car la comparaison de données varchar entre elles est un processus fastidieux par rapport à un champ numérique. Donc je veux que chaque enregistrement ait un champ numérique unique (disons id). Mais si je crée la clé primaire id, alors plusieurs enregistrements peuvent contenir la même .

Quelle est la solution au problème ci-dessus?

Répondre

4

Vous pouvez toujours créer une contrainte UNIQUE sur le terrain name:

ALTER TABLE your_table ADD UNIQUE (name); 

La contrainte UNIQUE, comme la contrainte PRIMARY KEY, garantira que votre colonne contiendra uniquement des valeurs uniques.

Notez que vous pouvez avoir plusieurs contraintes UNIQUE par table, mais une seule contrainte PRIMARY KEY.

+0

+1 ....... merci –

+0

Pourriez-vous s'il vous plaît regarder la question à http://stackoverflow.com/questions/2301691/what-datatype-to-use-for-a-field-that- can-contain-a-value-from-pre-defined-values –

Questions connexes