Oprette eller fjerne en primær nøgle

Hver tabel i databasen skal have en primær nøgle – et felt eller et sæt af felter med en entydig værdi for hver post, der er gemt i tabellen. Du kan bruge den primære nøgle til at identificere og henvise til hver post.

Access kan automatisk oprette et felt med en primær nøgle til dig, når du opretter en tabel, eller du kan angive de felter, du vil bruge som den primære nøgle. I denne artikel forklares det, hvordan og hvorfor du skal bruge primære nøgler.

En af grundene til at oprette en primær nøgle er at bruge den til at oprette tabelrelationer. I dette emne beskrives det ikke, hvordan du opretter relationer. Du kan finde flere oplysninger i afsnittet Se også.

Denne artikel indeholder

Oversigt

Tilføje en primær autonummereringsnøgle

Angive felter der skal bruges som den primære nøgle

Fjerne en primær nøgle

Bruge SQL til at oprette eller fjerne en primær nøgle

Yderligere oplysninger

Oversigt

Når du designer en database, opdeler du oplysningerne i tabeller på en sådan måde, at hver tabel er om ét emne, f.eks. Kunder eller Ordrer. Dette hjælper med at forhindre redundans og modstridende data.

Hver kunde kan f.eks. have mange ordrer. I stedet for at gemme kundens adresse i hver post i tabellen Ordrer, gemmer du disse oplysninger én gang i en post i tabellen Kunder. For at kombinere kundeoplysningerne med resten af oplysningerne om ordren opretter du en relation mellem de to tabeller ved hjælp af nøglefelterne.

Primære nøgler

En tabel kan kun have én primær nøgle. En primær nøgle er et felt eller et sæt af felter, der:

  • Har en entydig værdi for hver post

  • Er indekseret

  • Identificerer posten

Du kan føje den primære nøgle fra én tabel til en anden tabel for at oprette en relation mellem dem. I den anden tabel kaldes det for en fremmed nøgle.

Forestil dig f.eks., at du bruger den primære nøgle for tabellen Kunder i tabellen Ordrer. I tabellen Ordrer kaldes det en fremmed nøgle.

Primær nøgle og fremmed nøgle vist mellem to Access-dataark

1. Primær nøgle

2. Fremmed nøgle

Fremmede nøgler

En fremmed nøgle er kort sagt en anden tabels primære nøgle. Værdierne i et fremmed nøgle-felt svarer til værdier i den primære nøgle, hvilket angiver, at de to poster er relaterede – f.eks. en kunde og en ordre, som kunden har afgivet. I modsætning til primære nøgler:

  • En tabel kan have mere end én fremmed nøgle.

  • En fremmed nøgle har ikke nødvendigvis entydige værdier.

  • En fremmed nøgle kan ikke identificere en bestemt post. Du kan f.eks. ikke altid se, hvilken post du får vist fra tabellen Ordrer ved at kigge på Kunde-id.

Du opretter en fremmed nøgle, når du bruger guiden Opslag til at oprette et felt.

Kandidatnøgler

Nogle gange indeholder en tabel allerede et godt primær nøgle-felt, f.eks. et serienummer eller en produktkode. Disse felter kaldes kandidatnøgler.

Hvis du f.eks. registrerer resultater for videregående uddannelse, har du måske en tabel over skoler. Antag, at der er en officiel database med skoler, der indeholder et kodenummer for hver skole, f.eks. den amerikanske Department of Education Integrated Postsecondary Education Data System (IPEDS). Du kunne bruge den kode, som systemet genererer, som den primære nøgle til din tabel med skoler.

En velegnet kandidatnøgle har følgende egenskaber:

  • Hver værdi er entydig. Ikke to poster i tabellen har samme værdi for nøglen.

  • Den er aldrig tom eller har en Null-værdi – den indeholder altid en værdi.

  • Når en værdi er etableret, er hver værdi forholdsvis permanent. Ideelt set ændres værdierne i nøglefeltet aldrig – de bliver kun tilføjet eller fjernet.

Et eksempel på et dårligt valg til en primær nøgle er en kundes navn. Selvom nogle navne er entydige, er det ikke alle, der er det. Eftersom du ikke kan være sikker på, at værdier vil være entydige, er navne ikke kandidatnøgler.

Når du opretter en ny tabel i dataarkvisning, opretter Access automatisk en primær nøgle, navngiver feltet ID, og giver det datatypen Autonummerering. Feltet er som standard skjult i dataarkvisning, men du kan se feltet, hvis du skifter til designvisning.

Autonummereringsfelter

Hvis tabellen ikke har nogen gode kandidatnøgler, og du ikke har oprettet tabellen i dataarkvisning, skal du overveje at tilføje et felt, der har datatypen Autonummerering og derefter bruge det pågældende felt til den primære nøgle. Et felt af typen Autonummerering får automatisk en ny, entydig værdi for hver post, der er tilføjet. Selvom du sletter poster, genbruges værdierne ikke. Et felt af typen Autonummerering giver derfor entydige værdier for hver post, og det sikrer en god primær nøgle.

Tabellen Produkter med et primært nøglefelt

1. En kolonne med datatypen Autonummerering et ofte velegnet som primær nøgle, fordi den sørger for, at ingen produkt-id'er er ens.

Sammensatte nøgler

I nogle tilfælde vil du måske bruge to eller flere felter i kombination som den primære nøgle for en tabel. En tabel med ordreoplysninger, der gemmer linjeelementer for ordrer, bruger muligvis to felter i sin primære nøgle: ordre-id og produkt-id. En nøgle, der har mere end ét felt, kaldes en sammensat nøgle.

Bemærk: Du kan ikke oprette en sammensat fremmed nøgle ved hjælp af guiden Opslag. Du kan oprette en sammensat fremmed nøgle ved at bruge en datadefinitionsforespørgsel til at oprette en begrænsning for flere felter. Du kan finde flere oplysninger i emnet Oprette eller redigere tabeller eller indeks ved hjælp af en datadefinitionsforespørgsel.

Toppen af siden

Tilføje en primær autonummereringsnøgle

  1. Højreklik på den tabel, hvori du vil tilføje en primær nøgle, i navigationsruden, og klik derefter på Designvisning i genvejsmenuen.

  2. Skriv et navn i den første tomme række i tabeldesigngitteret i kolonnen Feltnavn, f.eks. Kunde-id.

  3. Klik på rullepilen i kolonnen Datatype, og klik derefter på Autonummerering.

  4. Klik på Stigende i Nye værdier under Feltegenskaber for at bruge stigende numeriske værdier i den primære nøgle, eller klik på Vilkårligt for at bruge vilkårlige tal.

  5. Klik på Primær nøgle i gruppen Funktioner under fanen Design.

    Gruppen Funktioner under fanen Design

    Der vises en nøgleindikator til venstre for feltet Autonummerering.

    Tryk på CTRL+S for at gemme ændringerne i tabeldesignet.

Toppen af siden

Angive felter der skal bruges som den primære nøgle

  1. Højreklik på den tabel, hvor du vil angive den primære nøgle, i navigationsruden, og klik derefter på Designvisning i genvejsmenuen.

  2. Marker det eller de felter, du vil bruge som den primære nøgle.

    Tip: Hvis du vil vælge mere end ét felt, skal du holde Ctrl nede, mens du klikker på felterne.

  3. Klik på Primær nøgle i gruppen Funktioner under fanen Design.

    Gruppen Funktioner under fanen Design

    Der vises en nøgleindikator til venstre for det eller de felter, du har angivet som primær nøgle.

    Tryk på CTRL+S for at gemme ændringerne i tabeldesignet.

Toppen af siden

Fjerne en primær nøgle

Når du fjerner en tabels primære nøgle, vil det eller de felter, der har fungeret som primær nøgle, ikke længere være primært id for en post. Når du fjerner den primære nøgle, bliver feltet eller felterne ikke slettet i tabellen. I stedet fjernes angivelsen af den primære nøgle fra felterne.

Når du fjerner den primære nøgle, fjernes også det indeks, der er oprettet til den primære nøgle.

  1. Før du kan fjerne en primær nøgle, skal du sikre dig, at den ikke bruges i tabelrelationer. Hvis du forsøger at fjerne en primær nøgle, der er en del af en eller flere relationer, får du vist en advarsel om, at du skal slette relationen først.

    Slette en tabelrelation

    1. Hvis tabellerne i tabelrelationen er åbne, skal du lukke dem. Du kan ikke slette en tabelrelation mellem åbne tabeller.

    2. Klik på Relationer i gruppen Vis/skjul under fanen Databaseværktøjer.

      Billede af Access-båndet

    3. Hvis tabellerne i tabelrelationen ikke er synlige, skal du klikke på Vis tabel i gruppen Relationer under fanen Design. Vælg derefter de tabeller, der skal tilføjes, i dialogboksen Vis tabel, klik på Tilføj, og klik derefter på Luk.

    4. Klik på tabelrelationslinjen for den tabelrelation, du vil slette (linjen bliver fed, når den er markeret), og tryk derefter på DELETE.

    5. Klik på Luk i gruppen Relationer under fanen Design.

      Båndet med gruppen Relationer under fanen Design

  2. Højreklik på den tabel, hvorfra du vil fjerne den primære nøgle, i navigationsruden, og klik derefter på Designvisning i genvejsmenuen.

  3. Vælg det aktuelle primære nøglefelt.

    Hvis den primære nøgle består af flere felter, skal du klikke på rækkevælgeren for et vilkårligt felt i den primære nøgle.

  4. Klik på Primær nøgle i gruppen Funktioner under fanen Design.

    Gruppen Funktioner under fanen Design

    Nøgleindikatoren fjernes fra det eller de felter, du tidligere har angivet som primær nøgle.

Bemærk: Når du gemmer en ny tabel uden at angive en primær nøgle, bliver du spurgt, om du vil oprette den. Hvis du vælger Ja, oprettes et id-felt af datatypen Autonummerering, så der er defineret en entydig værdi for hver post. Hvis tabellen allerede indeholder et felt af typen Autonummerering, bruges det pågældende felt som primær nøgle.

Toppen af siden

Ændre en primær nøgle

Hvis du vil ændre en tabels primære nøgle, skal du følge disse trin:

  1. Fjern de eksisterende primære nøgle ved hjælp af vejledningen i afsnittet Fjerne en primær nøgle.

  2. Opret en ny primær nøgle ved hjælp af vejledningen i afsnittet Angive felter, du vil bruge som den primære nøgle.


Toppen af siden

Bruge SQL til at oprette eller fjerne en primær nøgle

I Access implementeres en primær nøgle som et indeks. Når du bruger designvisning til at oprette en primær nøgle, oprettes indekset for dig. Hvis du foretrækker det, kan du bruge en datadefinitionsforespørgsel til at oprette en primær nøgle. Du kan genbruge forespørgslen, når du vil oprette den samme primære nøgle. Dette kan være praktisk, hvis du til tider sletter og genopretter en tabel.

Oprette en primær nøgle ved hjælp af SQL

For at oprette en primær nøgle i en eksisterende tabel skal du bruge kommandoen CREATE INDEX.

Du kan bruge kommandoen CREATE INDEX i en datadefinitionsforespørgsel.

  1. Klik på Forespørgselsdesign i gruppen Andet under fanen Opret.

  2. Luk dialogboksen Vis tabel.

  3. Klik på Datadefinition i gruppen Forespørgselstype under fanen Design.

    Forespørgslen skifter til SQL-visning.

  4. Skriv eller indsæt følgende SQL i forespørgslen:

    CREATE INDEX 
    ON ( )
    WITH PRIMARY
  5. I slutningen af den første linje skal du skrive et navn til indekset.

    Tip: Overvej at påbegynde navnet med bogstaverne pk, der indikerer, at indekset er en primær nøgle. Konsekvent navngivning af indekser for dine primære nøgler gør det nemmere at adskille dem fra andre indekser.

  6. I anden linje efter søgeordet ON, men før parenteserne, skal du indtaste navnet på tabellen.

  7. Skriv de felter, du vil bruge som den primære nøgle, i parenteserne. Hvis du skriver mere end ét felt, skal du adskille felterne med et komma.

  8. Tryk på CTRL+S for at gemme forespørgslen.

    Bemærk: Du kan ikke oprette et indeks, der allerede findes. Hvis du vil genbruge en forespørgsel, der opretter en primær nøgle, skal du først fjerne den eksisterende primære nøgle.

Fjerne en primær nøgle ved hjælp af SQL

Hvis du vil fjerne en primær nøgle fra en tabel, skal du bruge kommandoen DROP INDEX.

Du bruger kommandoen DROP INDEX i en datadefinitionsforespørgsel.

  1. Klik på Forespørgselsdesign i gruppen Andet under fanen Opret.

  2. Luk dialogboksen Vis tabel.

  3. Klik på Datadefinition i gruppen Forespørgselstype under fanen Design.

    Forespørgslen skifter til SQL-visning.

  4. Skriv eller indsæt følgende SQL i forespørgslen:

    DROP INDEX 
    ON
  5. I slutningen af den første linje skal du skrive navnet på indekset.

    Tip: Hvis du ikke kender navnet på indekset, kan du finde ud af det. Åbn først tabellen i designvisning. Klik derefter på Indeks i gruppen Vis/skjul under fanen Design.

  6. I anden linje efter søgeordet ON, men før parenteserne, skal du indtaste navnet på tabellen.

  7. Tryk på CTRL+S for at gemme forespørgslen.

Yderligere oplysninger

Du kan finde flere oplysninger om databasedesign og vælge en passende primær nøgle i artiklerne Grundlæggende oplysninger om databasedesign og Oprette en tabel.

Toppen af siden

Del Facebook Facebook Twitter Twitter Mail Mail

Var disse oplysninger nyttige?

Fantastisk! Har du mere feedback?

Hvordan kan vi forbedre det?

Tak for din feedback!

×