Une table peut-elle avoir plusieurs clés primaires?
Je suis très confus maintenant, peut-être que vous pouvez m'aider à mieux comprendre le problème quant à la question de qui peut une table de deux clés primaires si oui, alors comment? et il n', alors pourquoi?
source d'informationauteur Pankaj Kumar
Vous devez vous connecter pour publier un commentaire.
Vous demander si vous pouvez avoir plus qu'une seule clé primaire champ et vous pouvez certainement. Vous ne pouvez avoir qu'une seule clé primaire, mais qui peut être composée d'autant de colonnes que vous avez besoin pour identifier de manière unique votre lignes.
Utiliser quelque chose comme cela lors de la création de votre table:
où
P_Td
etLastName
sont des colonnes de votre tableau.Si vous pensez que vous voulez plus d'une clé primaire, alors la réponse est "pas vraiment." Vous ne pouvez avoir qu'une seule clé primaire. Cependant, vous pouvez avoir autant d'index que vous souhaitez qui ont une contrainte unique sur eux. Un index unique fait à peu près la même chose qu'une clé primaire.
par exemple :-
Note: Dans l'exemple ci-dessus il y a UNE seule CLÉ PRIMAIRE (
pk_PersonID
). Toutefois, la valeur de lapk_PersonID
est composé de deux colonnes (P_Id
etLastName
).Pas Vous ne pouvez pas avoir deux clés primaires dans une table, mais vous pouvez avoir la clé primaire composite
Parce que la clé Primaire est une identité à la ligne et il ne peut y avoir deux Id contre une rangée.
Un tableau peut avoir plusieurs touches, mais par convention, une seule clé par table est désigné comme "primaire". Typiquement, cela peut être la clé réputé pour être le "préféré" de l'identificateur de l'information dans la table ou il pourrait être un élément distingué pour quelque autre fin déterminée par la table du designer.
En principe, quelle que soit la fonction ou bien vous associer à la clé désigné "primaire", pourrait tout aussi bien être associée à n'importe quelle autre touche. Par conséquent, pour de nombreuses fins pratiques, vous pourriez désigner plus d'un de ces "primaires" de la clé si vous le souhaitez - mais seulement si les limites des SGBD permis.
Sous le modèle relationnel de données, toutes les touches sont égaux et il n'y a pas de fonction spéciale donnée aux clés primaires (en fait, le relationnel de l'utilisation du terme clé primaire appelée à l'origine d' tout et tous les clés d'une relation et pas seulement une seule touche). Malheureusement, de nombreux Sgbd ne pas respecter ce principe et peut limiter certaines fonctions à une seule et unique clé d'un tableau, il faut être sélectif sur ce qui touche obtient désigné comme principale. Si la réponse à votre question doit être OUI, en principe. Lorsque vous avez besoin pour réaliser un SQL SGBD la véritable réponse est: ça dépend.
Vous ne pouvez avoir 1 clé primaire - la gamme de clés qui pourraient potentiellement être la clé primaire peut être désigné comme candidat clés. Celui que vous sélectionnez est la clé primaire, l'autre des touches alternatives peuvent être mises en œuvre comme des contraintes uniques /index.
Alors qu'il est à seulement 1 clé primaire, vous pouvez toujours s'assurer de primalité d'autres champs /combinaison de champs à l'aide de la contrainte unique /index.
Pas.Le tableau ont uniquement sur la clé primaire. Mais que clé primaire peut contenir plusieurs champs. Signifie que lorsque vous créez la table et quand on parle de clé primaire, vous pouvez ajouter plus d'une colonne dont vous souhaitez.
par exemple
CREATE TABLE nom_table ( col1 Type de données , col2 Type de données,col3 Type de données, col4 Type de données, la CLÉ PRIMAIRE (col1,col2,col3) )
Par cette façon, vous pouvez ajouter une clé primaire dans la table unique
Sur un tableau, vous pouvez faire indexqui permettent à l'interne du moteur de base de données pour traiter le contenu des colonnes affectées (1 à plusieurs) pour faciliter la recherche. Parce que le moteur est à ce stade déjà de l'évaluation et de trier le contenu des champs, il peut aussi facilement s'assurer de l'unicité des valeurs. Ainsi, un indice peut s'étendre sur 1 à plusieurs lignes, et, en option, être unique.
Un clé primaire théoriquement optionnel, mais dans la pratique obligatoire, un marqueur sur un index spécifique qu'il est éternellement façon unique de faire référence à une ligne spécifique dans le tableau. C'est généralement soit un GUID ou un auto-incrément entier (
identity
dans SQL Server). La clé primaire elle-même est unique pour toute la table, et applique une contrainte unique, par définition, mais peut éventuellement s'étendre sur plusieurs lignes (une fractionné index/clé).Par exemple, vous pouvez avoir une table de jonction ne contenant que 2 champs, qui sont les deux clés étrangères, et, ensemble, forment la clé primaire/index de la table.
Pas.Vous ne pouvez pas utiliser plus de 1 clé primaire dans la table.pour cela, vous devez clé composite qui est une combinaison de plusieurs champs.
Que vous ne pouvez pas définir plus d'une colonne comme Clé Primaire comme ci-dessous
Il doit être une clé composite. Oui, on peut avoir plus d'une colonne comme clé primaire pour résoudre certains besoins de l'entreprise. Les Clés primaires assure que la colonne(s) ne sera pas avoir de doublons de valeurs Null dans la table.
Ci-dessous est le code SQL pour créer une table avec une Clé Primaire Composite
De CRÉER la TABLE de la piste(
col1 numérique(10) , col2 numérique(10) ,col3 numérique(10) , col4 numérique(10),
CLÉ PRIMAIRE (col1,col2,col3)
)
Vous Pouvez essayer de CLÉ ÉTRANGÈRE est un champ (ou une collection de champs) dans un tableau qui fait référence à la CLÉ PRIMAIRE d'une autre table.