Nous pouvons déclarer un Identity
comme id_num
pour que id_num
aura 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
puisque Identity
a fourni un numéro unique pour chaque ligne?
Identity columns
et Primary Keys
sont deux choses très distinctes. Une Identity column
fournit un nombre à incrémentation automatique. C'est tout. Le Primary 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. Fréquemment Identity columns
sont utilisés comme Primary Key
si pas bon natural key
existe, mais n'est pas un substitut.
Non, ce n'est pas le cas, car l'identité ne pas garantit 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é.