Oversigt: i denne vejledning lærer du, hvordan du bruger MySQL primær nøglebegrænsning til at oprette den primære nøgle til en tabel.
Introduktion til MySQL primær nøgle
En primær nøgle er en kolonne eller et sæt kolonner, der entydigt identificerer hver række i tabellen. Den primære nøgle følger disse regler:
- En primær nøgle skal indeholde unikke værdier. Hvis den primære nøgle består af flere kolonner, skal kombinationen af værdier i disse kolonner være unik.
- En primær nøglekolonne kan ikke have
NULL
-værdier. Ethvert forsøg på at indsætte eller opdatereNULL
til primære nøglekolonner vil resultere i en fejl. Bemærk, at MySQL implicit tilføjer enNOT NULL
-begrænsning til primære nøglekolonner. - En tabel kan have en og kun en primær nøgle.
Fordi MySQL fungerer hurtigere med heltal skal datatypen i den primære nøglekolonne være heltalet, fx INT,
BIGINT
. Og du skal sikre dig, at værdiintervaller af heltalstypen for den primære nøgle er tilstrækkelige til at gemme alle mulige rækker, som tabellen kan have.
En primær nøglekolonne har ofte AUTO_INCREMENT
-attribut, der automatisk genererer et sekventielt heltal, hver gang du indsætter en ny række i tabellen.
Når du definerer en primær nøgle til en tabel, opretter MySQL automatisk et indeks kaldet PRIMARY
.
Eksempler på MySQL PRIMÆRE NØGLE
PRIMARY KEY
-begrænsning giver dig mulighed for at definere en primær nøgle i en tabel når du opretter eller ændrer tabel.
1) Definer en PRIMÆR NØGLE-begrænsning i CREATE TABLE
Du definerer typisk den primære nøgle til en tabel i CREATE TABLE
udsagn.
Hvis den primære nøgle har en kolonne, kan du bruge PRIMARY KEY
begrænsningen som en kolonnebegrænsning:
Code language: SQL (Structured Query Language) (sql)
Når den primære nøgle har mere end en kolonne, skal du bruge th e PRIMARY KEY
begrænsning som en tabelbegrænsning.
I denne syntaks adskiller du kolonner i column_list
med kommaer ( ,).
PRIMARY KEY
tabelbegrænsning kan bruges, når den primære nøgle har en kolonne:
Følgende eksempel opretter en tabel med navnet users
hvis primære nøgle er user_id
kolonnen:
Denne erklæring opretter roles
-tabel, der har PRIMARY KEY
-begrænsning som tabelbegrænsning:
Hvis den primære nøgle består af flere kolonner, skal du angive dem i slutningen af CREATE TABLE
udsagnet. Du placerer en komma-adskilt liste med primære nøglekolonner inden for parentes efterfulgt af PRIMARY KEY
nøgleordene.
Følgende eksempel opretter user_roles
tabel, hvis primære nøgle består af to kolonner: user_id
og role_id
. Det definerer PRIMARY KEY
-begrænsning som tabelbegrænsning:
Bemærk, at udsagnet også skabte to begrænsninger for udenlandske nøgler.
2) Definer PRIMÆR Nøglebegrænsninger ved hjælp af ALTER TABLE
Hvis en tabel af nogle årsager ikke har en primær nøgle, kan du bruge sætningen ALTER TABLE
til at føje en primær nøgle til tabellen som følger:
Code language: SQL (Structured Query Language) (sql)
Følgende eksempel føjer id
kolonnen til den primære nøgle.
Opret først pkdemos
-tabellen uden en primær nøgle.
Code language: SQL (Structured Query Language) (sql)
For det andet skal du tilføje en primær nøgle til pkdemos
-tabellen ved hjælp af ALTER TABLE
udsagnet:
Code language: SQL (Structured Query Language) (sql)
Hvis du tilføjer en primær nøgle til en tabel, der allerede har data. Dataene i kolonnen (e), som vil blive inkluderet i den primære nøgle, skal være entydige og ikke NULL.
PRIMÆR NØGLE vs. UNIK NØGLE vs. NØGLE
KEY
er synonymet for INDEX
. Du bruger KEY
, når du vil oprette et indeks til en kolonne eller et sæt kolonner, der ikke er en del af en primær nøgle eller unik nøgle.
Et UNIQUE
-indeks sikrer, at værdier i en kolonne skal være unikke. I modsætning til PRIMARY
indekset tillader MySQL NULL
værdier i UNIQUE
indekset. Derudover kan en tabel have flere UNIQUE
indekser.
Antag at email
og username
af brugere i users
-tabellen skal være unik.For at håndhæve disse regler kan du definere UNIQUE
indekser for email
og username
kolonnerne følgende udsagn:
Tilføj et UNIQUE
indeks til username
kolonnen:
Code language: SQL (Structured Query Language) (sql)
Tilføj et UNIQUE
indeks til email
kolonnen:
Code language: SQL (Structured Query Language) (sql)
I denne tutorial har du lært, hvordan du opretter en primær nøgle til en ny tabel eller tilføjer en primær nøgle til en eksisterende tabel.
- Var denne tutorial nyttig?
- JaNej