Nous pouvons déclarer un Identity
semblable id_num
afin d' id_num
avoir un incrément de nombres uniques.
CREATE TABLE new_employees
(
id_num int IDENTITY(1,1),
fname varchar (20),
minit char(1),
lname varchar(30)
)
Est-il recommandé d'utiliser Identity
comme alternative à Primary key
depuis Identity
fourni un numéro unique pour chaque ligne?
IDENTITY
comme clé primaire (et non comme alternative à un PK). Cela donne une très bonne clé primaire très efficace (qui est par défaut également la clé de clustering dans SQL Server) - elle est étroite, elle est généralement statique, elle est généralement unique (à moins que vous ne manipuliez la spécification d'identité), et c'est toujours- croissantRéponses:
Identity columns
etPrimary Keys
sont deux choses très distinctes. AnIdentity column
fournit un nombre à incrémentation automatique. C'est tout. LaPrimary Key
(au moins dans SQL Server) est une contrainte unique qui garantit l'unicité et est généralement (mais pas toujours) la clé en cluster. Encore une fois dans MS SQL Server, il s'agit également d'un index (dans certains SGBDR, ils ne sont pas aussi étroitement liés). En tant qu'index, il fournit des recherches plus rapides, etc. IlsIdentity columns
sont fréquemment utilisés commePrimary Key
s'il n'y a pas de biennatural key
, mais ne sont pas un substitut.la source
clustered index key
où il est ditprimary key
.Non, ce n'est pas le cas, car l'identité ne garantit pas une valeur unique. La propriété d'identité peut être contournée avec
SET IDENTITY_INSERT <schema>.<table> ON
(dans SQL Server - vous n'avez pas spécifié le SGBDR que vous utilisez).Une contrainte de clé primaire (et une contrainte unique) utilise un index unique pour appliquer l' unicité.
la source
Identity
etPrimary Key
ne sont pas équivalents et servent deux objectifs distincts.