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 uppdateraNULL
till primära nyckelkolumner leder till ett fel. Observera att MySQL implicit lägger till enNOT 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