it-swarm.com.de

Unterschiede zwischen "Eindeutiger Schlüssel" und "Primärschlüssel"

Was sind die Hauptunterschiede zwischen Unique Key und Primary Key in MySQL?

19
newuser

Eine Tabelle kann höchstens eine PRIMARY KEY - Einschränkung haben, aber es können beliebig viele UNIQUE KEY - Einschränkungen vorhanden sein.

Spalten, die Teil von PRIMARY KEY Sind, müssen als NOT NULL Definiert werden. Dies ist für Spalten, die Teil von UNIQUE KEY - Einschränkungen sind, nicht erforderlich. Wenn die Spalten nicht nullbar sind, gibt es keinen Unterschied zwischen eindeutigen und primären Schlüsseln.

Ein weiterer kleiner Unterschied besteht darin, dass Sie den gewünschten Namen für eine UNIQUE KEY - Einschränkung (und einen Index) auswählen können. Andererseits hat PRIMARY KEY Den Standardnamen: PRIMARY.

24
ypercubeᵀᴹ

Ein wesentlicher Unterschied

  • Der Primärschlüssel erlaubt keine nullbaren Spalten
  • Der eindeutige Schlüssel ermöglicht nullbare Spalten

Ansonsten gibt es keinen großen Unterschied ...

7
gbn

Etwas, worauf andere nicht hingewiesen haben:

  • Wenn Sie in InnoDB-Tabellen keine PK explizit deklarieren, wird für Sie eine PK unter dem Deckmantel erstellt. Sie können mit diesem impliziten Schlüssel nicht zugreifen, bestellen oder filtern. Dies hat Auswirkungen auf die Ressourcen, da jeder Sekundärindex einen Kopierzeiger auf die PK der Zeile enthält.
4
atxdba

Der wichtigste Unterschied besteht in ihrem Zweck.

  • Primärschlüssel: Zweck des Primärschlüssels ist es, als „SCHLÜSSEL“ zu fungieren. Ein Primärschlüssel ist ein Schlüssel in einer relationalen Datenbank, mit der Datensätze identifiziert werden.
  • nique Index: Unique Index ist ein „INDEX“, der für die Performance bestimmt ist. Das Optimierungsprogramm weiß, dass für eine Bedingung "wobei x =: x" nur ein Datensatz vorhanden ist, sodass ein dafür geeigneter Plan erstellt werden kann.
  • nique Constraint: Es handelt sich um eine "Einschränkung", die sicherstellt, dass diese Spalte keine doppelten Werte enthält. Dies ist eine Einschränkung für die Datenintegrität.

Neben ihrem Zweck sind folgende Punkte bemerkenswert.

  • Sofern nicht anders angegeben, versucht PRIMARY KEY, einen CLUSTERED INDEX zu erstellen (In diesem Punkt geht es jedoch um SQL Server, wie im Kommentar erwähnt).
  • Es kann nur einen PRIMARY KEY pro Tabelle geben. Es kann jedoch viele eindeutige Einschränkungen und eindeutige Indizes geben
  • PRIMARY KEY ist immer nicht null, aber Spalten mit eindeutiger Einschränkung können NULL-Werte enthalten
3
LCJ