MySQL primär nyckel

Sammanfattning: i denna handledning lär du dig hur du använder MySQL primär nyckelbegränsning för att skapa den primära nyckeln för en tabell.

Introduktion till MySQL primär nyckel

En primär nyckel är en kolumn eller en uppsättning kolumner som unikt identifierar varje rad i tabellen. Primärnyckeln följer dessa regler:

  • En primärnyckel måste innehålla unika värden. Om den primära nyckeln består av flera kolumner måste kombinationen av värden i dessa kolumner vara unik.
  • En primär nyckelkolumn kan inte ha NULL -värden. Varje försök att infoga eller uppdatera NULL till primära nyckelkolumner leder till ett fel. Observera att MySQL implicit lägger till en NOT NULL -begränsning i kolumner för primära nycklar.
  • En tabell kan ha en endast en primär nyckel.

Eftersom MySQL fungerar snabbare med heltal ska datatypen för den primära nyckelkolumnen vara heltalet, t.ex. INT, BIGINT. Och du bör försäkra dig om att värdeintervall av heltalstypen för den primära nyckeln är tillräcklig för att lagra alla möjliga rader som tabellen kan ha.

En primär nyckelkolumn har ofta AUTO_INCREMENT attribut som automatiskt genererar ett sekventiellt heltal när du infogar en ny rad i tabellen.

När du definierar en primär nyckel för en tabell skapar MySQL automatiskt ett index som heter PRIMARY.

Exempel på MySQL PRIMÄRT NYCKEL

PRIMARY KEY begränsning låter dig definiera en primär nyckel i en tabell när du skapar eller ändrar tabell.

1) Definiera en PRIMÄR nyckelbegränsning i CREATE TABLE

Vanligtvis definierar du den primära nyckeln för en tabell i CREATE TABLE uttalande.

Om den primära nyckeln har en kolumn kan du använda begränsningen PRIMARY KEY som en kolumnbegränsning:

Code language: SQL (Structured Query Language) (sql)

När den primära nyckeln har mer än en kolumn måste du använda th e PRIMARY KEY begränsning som en tabellbegränsning.

I denna syntax separerar du kolumner i column_list med komma ( ,).

Tabellbegränsningen PRIMARY KEY kan användas när den primära nyckeln har en kolumn:

I följande exempel skapas en tabell med namnet users vars primära nyckel är user_id kolumnen:

Detta uttalande skapar roles tabell som har PRIMARY KEY begränsning som tabellbegränsning:

Om den primära nyckeln består av flera kolumner måste du ange dem i slutet av uttalandet CREATE TABLE. Du sätter en kommaseparerad lista med primära nyckelkolumner inom parentes följt PRIMARY KEY nyckelord.

Följande exempel skapar user_roles tabell vars primära nyckel består av två kolumner: user_id och role_id. Den definierar begränsningen PRIMARY KEY som tabellbegränsningen:

Observera att uttalandet också skapade två begränsningar för främmande nycklar.

2) Definiera PRIMÄR NYCKELBEGRÄNSNINGAR med ALTER TABLE

Om en tabell av någon anledning inte har en primär nyckel kan du använda uttalandet ALTER TABLE för att lägga till en primär nyckel till tabellen enligt följande:

Code language: SQL (Structured Query Language) (sql)

Följande exempel lägger till id kolumnen till den primära nyckeln.

Skapa först tabellen pkdemos utan en primär nyckel.

Code language: SQL (Structured Query Language) (sql)

För det andra, lägg till en primär nyckel till pkdemos tabellen med ALTER TABLE uttalande:

Code language: SQL (Structured Query Language) (sql)

Om du lägger till en primär nyckel till en tabell som redan har data. Uppgifterna i kolumnen / kolumnerna, som kommer att ingå i primärnyckeln, måste vara unika och inte NULL.

PRIMÄR NYCKEL vs UNIK KEY vs KEY

KEY är synonymen för INDEX. Du använder KEY när du vill skapa ett index för en kolumn eller en uppsättning kolumner som inte ingår i en primär nyckel eller unik nyckel.

Ett UNIQUE -index säkerställer att värden i en kolumn måste vara unika. Till skillnad från PRIMARY index tillåter MySQL NULL -värden i UNIQUE index. Dessutom kan en tabell ha flera UNIQUE index.

Antag att email och username för användare i users -tabellen måste vara unik.För att genomdriva dessa regler kan du definiera UNIQUE index för email och username som följande uttalande:

Lägg till ett UNIQUE index för username -kolumnen:

Code language: SQL (Structured Query Language) (sql)

Lägg till ett UNIQUE index för email kolumn:

Code language: SQL (Structured Query Language) (sql)

I den här självstudien har du lärt dig hur du skapar en primär nyckel för en ny tabell eller lägger till en primär nyckel i en befintlig tabell.

  • Hjälpte den här handledningen?
  • Ja Nej

Leave a Reply

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *