J'ai une table dans MySQL avec 30 colonnes et des milliers d'entrées.
Existe-t-il une manière que je puisse faire chaque rangée unique, cela signifie que si une ligne existe déjà, je ne devrais plus pouvoir entrer cette rangée à nouveau.
Je ne peux pas utiliser des clés primaires ou uniques ici, car individuellement chaque colonne pourrait être répétée. dans cette colonne, je ne peux faire aucune ou deux colonnes unique mais je ne devrais pas avoir deux entrées de toutes les mêmes Données. P> P>
Je veux que la ligne soit unique.
Par exemple: -Il y a-t-il une table avec p>
5 Réponses :
Vous avez besoin d'une clé primaire composite. P>
Une clé primaire composite indique à MySQL que vous souhaitez que votre clé principale soit une combinaison de champs. p>
Plus d'infos ici: Pourquoi utiliser plusieurs colonnes comme touches principales (clé primaire composite) p>
L'OP dit qu'elle ne peut pas utiliser les clés primaires à cet effet
@Raj Plus: À partir de la question, il semble que OP pense que PK ou Royaume-Uni ne peut s'appliquer qu'à une seule colonne à la fois, je pense que c'est une réponse valide.
Vous pouvez créer un index unique sur plusieurs colonnes. Il suffit de mettre toutes les colonnes dans l'index. Si les colonnes sont grandes, vous pouvez rencontrer des problèmes avec la longueur maximale d'un index, mais l'essayer d'abord et voir. P>
Vous pouvez créer un index unique qui inclut toutes les colonnes de votre table de cette façon, vous pouvez conserver un incrémentation unique code> clé primaire à des fins de participation , tout en veillant à ce que toutes les données de votre table soient uniques. p> p>
Le problème avec ceci est que les indices ont des longueurs maximales et de très longs index sont inefficaces.
Vous pouvez créer une clé unique code> sur toutes les colonnes, pas des clés uniques individuelles sur chaque colonne. Cela signifie que la combinaison des valeurs sera unique - exactement ce dont vous avez besoin. Mais s'il vous plaît noter que si une colonne permet une valeur null, si la colonne contient une valeur null code>, elle sera comptée comme unique, même si une autre ligne contient les mêmes valeurs, avec
null code > Pour la même valeur. P>
Vous pouvez utiliser les données et définir la valeur de hachage comme votre PK, cela garantira que les lignes sont uniques. p>
Gardez à l'esprit erreur 1071 où combinant tant de colonnes peuvent créer des problèmes.