28 Settembre 2022
Expand search form

Una colonna di identità può essere usata come chiave primaria di una tabella?

Potreste dire se avere una colonna di identità come chiave primaria è una buona pratica? Per gli strumenti ORM, avere una colonna identità sulle tabelle aiuta. Ma ci sono altri effetti collaterali come l’inserimento accidentale di duplicati.

3 Risposte 3

Sì, usare una colonna INT (o BIGINT) IDENTITY è una buona pratica per SQL Server.

SQL Server utilizza la chiave primaria come chiave di clustering predefinita, e la chiave di clustering dovrebbe sempre avere queste proprietà:

  • stretto
  • statico
  • unica
  • sempre crescente

INT IDENTITY si adatta perfettamente al conto!

Per ulteriori informazioni, e soprattutto per sapere perché un GUID come chiave primaria (e quindi clustering) è un cattiva idea, si vedano gli eccellenti post di Kimberly Tripp:

Se avete ragioni per usare un GUID come chiave primaria (ad esempio per la replica), allora assicuratevi assolutamente di avere una INT IDENTITY come chiave chiave di clustering su quelle tabelle!

Le chiavi IDENTITY sono una buona pratica per le chiavi generate sul lato server, in ambienti in cui non avete repliche o pesanti fusioni di dati. Per come sono implementate, non permettono duplicati nella stessa tabella, quindi non preoccupatevi di questo. Hanno anche il vantaggio di minimizzare la frammentazione nelle tabelle che non hanno molte eliminazioni.

I GUID sono la solita alternativa. Hanno il vantaggio di poterli creare al web tier, senza richiedere un round-trip del DB. Tuttavia, sono più grandi delle IDENTITA’ e possono causare un’estrema frammentazione della tabella. Poiché sono (semi)casuali, gli inserti sono sparsi per l’intera tabella, piuttosto che essere concentrati in una pagina alla fine.

Io uso una Guid perché aiuta molto quando ho a che fare con applicazioni distribuite. Specialmente quando tutte le istanze distribuite hanno anche bisogno di creare nuovi dati.

Tuttavia, non vedo alcun problema con le chiavi primarie intere autoincrementate in situazioni semplici. In realtà le preferirei perché è più facile lavorare direttamente con le query SQL perché è più facile da ricordare.

Potresti anche essere interessato agli argomenti

Un identificatore è una chiave primaria?

Una chiave primaria, chiamata anche parola chiave primaria, è una chiave in un database relazionale che è unica per ogni record. È un identificatore unico, come il numero della patente di guida, il numero di telefono (compreso il prefisso) o il numero di identificazione del veicolo (VIN).

Continua…

Devo usare ID come chiave primaria?

La pratica di usare Id come campo chiave primaria porta alla pratica in cui id viene aggiunto ad ogni tabella. Molte tabelle hanno già informazioni uniche che identificano univocamente un record. Usate QUELLO come chiave primaria e non un campo id che aggiungete ad ogni singola tabella. Questo è uno dei fondamenti dei database relazionali.

Continua…

Qual è la differenza tra identità e chiave primaria?

Una PK è un identificatore unico per una riga di dati. Una colonna di identità si riempie automaticamente in base a qualche incremento ogni nuova riga. Le identità non sono necessariamente uniche o contigue. Potete fare della colonna identità la vostra PK, ma non deve esserlo per forza.26 Feb 2004

Continua…

Una tabella può essere una chiave primaria?

Una tabella può avere solo una chiave primaria, che può consistere di campi singoli o multipli. Quando più campi sono usati come chiave primaria, sono chiamati chiave composita. Se una tabella ha una chiave primaria definita su un campo qualsiasi, allora non si possono avere due record che hanno lo stesso valore di quel campo.

Continua…

La colonna ID è necessaria?

8 Risposte. Se hai davvero qualche colonna preesistente nel tuo set di dati che già identifica in modo univoco la tua riga – allora no, non c’è bisogno di una colonna ID extra. La chiave primaria però deve essere unica (in TUTTE le circostanze) e non può essere vuota (deve essere NOT NULL).Jun 27, 2011

Continua…

Tutte le tabelle dovrebbero avere una colonna ID?

Ogni tabella (eccetto le rare condizioni) dovrebbe avere una PRIMARY KEY, cioè un valore o un insieme di valori che identificano univocamente una riga. Vedi qui per discutere il perché. IDENTITY è una proprietà di una colonna in SQL Server che significa che la colonna sarà riempita automaticamente con valori crescenti.Jul 31, 2009

Continua…

Cos’è una chiave d’identità?

Una chiave d’identità è una chiave privata che viene utilizzata in SSH per garantire l’accesso ai server. Sono un tipo di chiave SSH, usata per l’autenticazione a chiave pubblica. … Anche se tecnicamente sono chiavi simili alle chiavi host, le chiavi di identità sono utilizzate per autenticare gli utenti, mentre le chiavi host sono utilizzate per autenticare i computer.

Continua…

Come si fa a rendere una colonna di identità una chiave primaria in SQL Server?

Ho tabella creata e voglio alterare quella tabella. Voglio aggiungere una chiave primaria e identità(1,1) . Posso applicare la chiave primaria ma applicare l’identità dà errore.Oct 8, 2020

Continua…

Una tabella può non avere una chiave primaria?

Ogni tabella può avere (ma non deve avere) una chiave primaria. La colonna o le colonne definite come chiave primaria assicurano l’unicità nella tabella; due righe non possono avere la stessa chiave. La chiave primaria di una tabella può anche aiutare a identificare i record in altre tabelle ed essere parte della chiave primaria della seconda tabella.

Continua…

Una tabella può avere 2 chiavi primarie?

No. Non puoi usare più di 1 chiave primaria nella tabella. per questo hai una chiave composita che è una combinazione di più campi. Deve essere una chiave composita.Dec 23, 2013

Continua…

Possiamo eliminare una tabella o una colonna da una tabella che ha una chiave primaria?

Possiamo rimuovere il vincolo PRIMARY KEY da una colonna di una tabella esistente usando la parola chiave DROP insieme alla dichiarazione ALTER TABLE.Feb 16, 2018

Continua…

Perché una tabella può avere solo una chiave primaria?

La ragione principale è perché questa è la definizione di chiave primaria. Una tabella può avere più chiavi uniche che identificano ogni riga, ma solo una chiave primaria. In database come MySQL, la chiave primaria è anche un indice clustered. Questo fornisce una ragione più diretta.Jul 17, 2015

Continua…

Tutte le tabelle dovrebbero avere una colonna di identità?

Ogni tabella (ad eccezione delle rare condizioni) dovrebbe avere una PRIMARY KEY , cioè un valore o un insieme di valori che identificano univocamente una riga. Vedi qui per discutere il perché. IDENTITY è una proprietà di una colonna in SQL Server che significa che la colonna sarà riempita automaticamente con valori crescenti.Jul 31, 2009

Continua…

Come si crea una colonna di identità in una tabella?

ScriptCREATE TABLE dbo.Tmp_City(Id int NOT NULL IDENTITY(1, 1), Name varchar(50) NULL, Country varchar(50), )ON[PRIMARY]go.SET IDENTITY_INSERT dbo.Tmp_City ON.go.IF EXISTS(SELECT * FROM dbo.City)INSERT INTO dbo.Tmp_City(Id, Name, Country)SELECT Id,More items…-Jan 30, 2017

Continua…

Una tabella SQL ha bisogno di una colonna ID?

Quando si crea un SQL, deve avere una chiave unica identificabile, il che significa che quando è necessario interrogare i record di quella particolare tabella, ci deve essere una colonna unica per rendere facile l’identificazione.Jan 28, 2014

Continua…

Articolo precedente

Come si apre un fornello elettrico Maytag?

Articolo successivo

Quanto deve essere lontana una vasca idromassaggio dal confine di proprietà?

You might be interested in …

Come si tolgono le zucchine dalla vite?

In qualsiasi modo la si tagli, questa salutare centrale elettrica di zucca è tutta una questione di facilità: facile da coltivare, facile da raccogliere, facile da usare in cucina. Il frutto della zucchina, o zucca, […]

Perché il mio rododendro perde le foglie?

Il genere Rhododendron è un gruppo di piante estremamente vario che include le azalee strettamente imparentate. Le loro gamme di resistenza variano a seconda della specie. Gli ibridi del gruppo PJM (Rhododendron PJM Group) sono […]

Quanti libri ci sono in Le Morte d Arthur?

Da Sir Thomas Malory Introduzione di Elizabeth Bryan Da Sir Thomas Malory Introduzione di Elizabeth Bryan Da Sir Thomas Malory Da Sir Thomas Malory Categoria: Narrativa Classici | Narrativa Storica | Narrativa Letteraria Categoria: Narrativa […]