---
title: "Flera primärnycklar"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/22152-flera-primärnycklar"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "snabelelefant"
published: "2001-07-09T11:30:00.000Z"
updated: "2001-07-09T12:38:00.000Z"
replies: 8
views: 389
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/databaser-sql/22152-flera-primärnycklar"
---

# Flera primärnycklar

## #1 — snabelelefant, 2001-07-09T11:30Z

Hur gör jag för att få dubbla primärnycklar i en tabell? Blir det rätt om man gör så här?:

CREATE TABLE PERSONER (	
p_id INT UNSIGNED AUTO_INCREMENT,
anst_nr SMALLINT NOT NULL,
p_fnamn VARCHAR(30),
p_enamn VARCHAR(40),
PRIMARY KEY(p_id, anst_nr));

Eller hur gör man annars???

Permalänk: https://www.webforum.nu/p/22152

## #2 — Vetgirig, 2001-07-09T11:55Z

En tabell kan bara ha en PRIMARY KEY.
Du kan ha flera KEY dvs:

CREATE TABLE PERSONER ( 
                       p_id INT UNSIGNED AUTO_INCREMENT,
                       anst_nr SMALLINT NOT NULL,
                       p_fnamn VARCHAR(30),
                       p_enamn VARCHAR(40),
                       PRIMARY KEY(p_id),

KEY (anst_nr)
);

Permalänk: https://www.webforum.nu/p/354543

## #3 — LarsG, 2001-07-09T11:58Z

Jo det ser väl korrekt ut, rent syntaktiskt. Jag förstår dock inte riktigt vad du vill uppnå? Vill du att p_id och anst_nr varför sig skall vara unika? I så fall får du sätta den ena som primary key och den andra som unique då det bara går att ha en primärnyckel per tabell. 

Som du har skrivit nu, så innebär det att p_id och anst_nr tillsammans skall vara unika vilket är lite suspsekt, ur modelleringssynpunkt, då p_id i sig är unik.

Permalänk: https://www.webforum.nu/p/354544

## #4 — snabelelefant, 2001-07-09T12:04Z

Nej, jag vill att kombinationen av p_id och anst_nr skall vara unik. Hur åstakommer jag det? Fungerar det om jag sätter p_id som PRIMARY KEY och anst_nr som KEY?

Permalänk: https://www.webforum.nu/p/354545

## #5 — snabelelefant, 2001-07-09T12:07Z

Nu ser jag att jag har skrivit fel... p_id skall INTE vara en räknare, självklart skulle den vara unik i så fall, utan det är ett person_id. Jag tänkte mer generellt, för jag har stött på tabeller där jag vill att en kombination av fält skall vara unik.

Permalänk: https://www.webforum.nu/p/354546

## #6 — LarsG, 2001-07-09T12:13Z

Det var därför jag blev konfunderad.
Du kan ange flera kolumnnamn i en primary key definition.

```
CREATE TABLE PERSONER ( 
person_id INT UNSIGNED NOT NULL,
anst_nr SMALLINT NOT NULL,
p_fnamn VARCHAR(30),
p_enamn VARCHAR(40),
PRIMARY KEY(person_id, anst_nr));
```

borde vara ok.

Permalänk: https://www.webforum.nu/p/354547

## #7 — snabelelefant, 2001-07-09T12:20Z

En tabell kan alltså ha mer än EN primary key? Vetgirig är av en annan mening, eller ?

Permalänk: https://www.webforum.nu/p/354548

## #8 — LarsG, 2001-07-09T12:33Z

Nej, det är han nog inte. En primärnyckel kan bestå av flera kolumner, men det får bara finnas en primärnyckel per tabell.

Permalänk: https://www.webforum.nu/p/354549

## #9 — snabelelefant, 2001-07-09T12:38Z

OK, jag är med! Tack för hjälpen!

Permalänk: https://www.webforum.nu/p/354550

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/22152-flera-primärnycklar
