Wir können ein Identity
Like deklarieren, id_num
so dass id_num
ein Inkrement von eindeutigen Zahlen vorliegt.
CREATE TABLE new_employees
(
id_num int IDENTITY(1,1),
fname varchar (20),
minit char(1),
lname varchar(30)
)
Ist es zu benutzen empfohlen Identity
als Alternative zu , Primary key
da Identity
eine eindeutige Nummer für jede Zeile zur Verfügung gestellt?
IDENTITY
als Primärschlüssel zu verwenden (nicht als Alternative zu einer PK). Dies ergibt einen sehr guten, sehr effizienten Primärschlüssel (der standardmäßig auch der Clustering-Schlüssel in SQL Server ist) - er ist eng, normalerweise statisch, normalerweise eindeutig (es sei denn, Sie spielen mit der Identitätsspezifikation herum) und er ist immer steigendAntworten:
Identity columns
undPrimary Keys
sind zwei sehr unterschiedliche Dinge. AnIdentity column
gibt eine automatisch inkrementierende Nummer an. Das ist alles was es tut. DerPrimary Key
(zumindest in SQL Server) ist eine eindeutige Einschränkung, die die Eindeutigkeit garantiert und normalerweise (aber nicht immer) der Clusterschlüssel ist. Auch in MS SQL Server handelt es sich um einen Index (in einigen RDBMS sind sie nicht so eng miteinander verbunden). Als Index bietet es schnellere Suchvorgänge usw. Wird häufigIdentity columns
verwendet,Primary Key
wenn kein Gutnatural key
vorhanden ist, ist aber kein Ersatz.quelle
clustered index key
wo er stehtprimary key
.Nein , es ist nicht, weil Identität nicht nicht einen eindeutigen Wert garantieren. Die Identitätseigenschaft kann umgangen werden
SET IDENTITY_INSERT <schema>.<table> ON
(in SQL Server - Sie haben nicht angegeben, welches RDBMS Sie verwenden).Eine Primärschlüsseleinschränkung (und eine eindeutige Einschränkung) verwendet einen eindeutigen Index, um die Eindeutigkeit zu erzwingen .
quelle
Identity
undPrimary Key
sind nicht gleichwertig und dienen zwei unterschiedlichen Zwecken.