Sammendrag: i denne opplæringen lærer du hvordan du bruker MySQL primærnøkkelbegrensning for å lage primærnøkkelen til en tabell.
Introduksjon til MySQL primærnøkkel
En primærnøkkel er en kolonne eller et sett med kolonner som unikt identifiserer hver rad i tabellen. Primærnøkkelen følger disse reglene:
- En primærnøkkel må inneholde unike verdier. Hvis primærnøkkelen består av flere kolonner, må kombinasjonen av verdier i disse kolonnene være unik.
- En primærnøkkelkolonne kan ikke ha
NULL
verdier. Ethvert forsøk på å sette inn eller oppdatereNULL
til hovednøkkelkolonner, vil føre til en feil. Vær oppmerksom på at MySQL implisitt legger til enNOT NULL
begrensning i primære nøkkelkolonner. - En tabell kan ha en og en primærnøkkel.
Fordi MySQL fungerer raskere med heltall, skal datatypen til den primære nøkkelkolonnen være heltallet, f.eks. INT,
BIGINT
. Og du bør forsikre deg om at verdiområder av heltallstypen for primærnøkkelen er tilstrekkelig til å lagre alle mulige rader som tabellen kan ha.
En primærnøkkelkolonne har ofte AUTO_INCREMENT
attributt som automatisk genererer et sekvensielt heltall når du setter inn en ny rad i tabellen.
Når du definerer en primærnøkkel for en tabell, oppretter MySQL automatisk en indeks kalt PRIMARY
.
PRIMÆRE NØkkel-eksempler på MySQL
PRIMARY KEY
-begrensningen lar deg definere en primærnøkkel i en tabell når du oppretter eller endrer tabell.
1) Definer en primær nøkkelbegrensning i OPPRETT TABELL
Vanligvis definerer du primærnøkkelen til en tabell i CREATE TABLE
uttalelse.
Hvis primærnøkkelen har en kolonne, kan du bruke PRIMARY KEY
begrensningen som en kolonnebegrensning:
Code language: SQL (Structured Query Language) (sql)
Når primærnøkkelen har mer enn én kolonne, må du bruke e PRIMARY KEY
begrensning som en tabellbegrensning.
I denne syntaksen skiller du kolonner i column_list
med komma ( ,).
PRIMARY KEY
tabellbegrensning kan brukes når primærnøkkelen har en kolonne:
Følgende eksempel oppretter en tabell med navnet users
hvis primære nøkkel er user_id
-kolonnen:
Denne uttalelsen oppretter roles
tabell som har PRIMARY KEY
begrensning som tabellbegrensning:
Hvis primærnøkkelen består av flere kolonner, må du spesifisere dem på slutten av CREATE TABLE
uttalelsen. Du setter en kommaseparert liste over primære nøkkelkolonner i parentes fulgt PRIMARY KEY
nøkkelordene.
Følgende eksempel oppretter user_roles
tabell hvis primære nøkkel består av to kolonner: user_id
og role_id
. Den definerer PRIMARY KEY
-begrensningen som tabellbegrensningen:
Merk at uttalelsen også opprettet to begrensninger for utenlandske nøkler.
2) Definer PRIMÆR NØkkelbegrensninger ved å bruke ALTER TABLE
Hvis en tabell av noen grunner ikke har en primærnøkkel, kan du bruke setningen ALTER TABLE
for å legge til en primærnøkkel til tabellen som følger:
Code language: SQL (Structured Query Language) (sql)
Følgende eksempel legger til id
-kolonnen i primærnøkkelen.
Opprett først pkdemos
tabellen uten en primærnøkkel.
Code language: SQL (Structured Query Language) (sql)
For det andre, legg til en primær nøkkel til pkdemos
tabellen ved hjelp av ALTER TABLE
utsagnet:
Code language: SQL (Structured Query Language) (sql)
Hvis du legger til en primærnøkkel i en tabell som allerede har data. Dataene i kolonnene (kolonnene), som vil bli inkludert i primærnøkkelen, må være unike og ikke NULL.
PRIMÆR NØKKEL vs. UNIK NØKKEL vs. NØKKEL
KEY
er synonymet for INDEX
. Du bruker KEY
når du vil lage en indeks for en kolonne eller et sett med kolonner som ikke er en del av en primærnøkkel eller unik nøkkel.
En UNIQUE
indeks sikrer at verdiene i en kolonne må være unike. I motsetning til PRIMARY
indeksen tillater MySQL NULL
verdier i UNIQUE
indeksen. I tillegg kan en tabell ha flere UNIQUE
indekser.
Anta at email
og username
av brukere i users
-tabellen må være unik.For å håndheve disse reglene kan du definere UNIQUE
indekser for email
og username
kolonnene som følgende utsagn:
Legg til en UNIQUE
-indeks for username
-kolonnen:
Code language: SQL (Structured Query Language) (sql)
Legg til en UNIQUE
-indeks for email
-kolonnen:
Code language: SQL (Structured Query Language) (sql)
I denne opplæringen har du lært hvordan du oppretter en primærnøkkel for en ny tabell eller legger til en primærnøkkel i en eksisterende tabell.
- Var denne opplæringen nyttig?
- JaNei