wake-up-neo.com

Hinzufügen eines zusammengesetzten Primärschlüssels zur Tabelle

create table d(id numeric(1), code varchar(2))

Wie kann ich nach dem Erstellen der obigen Tabelle einen zusammengesetzten Primärschlüssel für beide Felder und einen Fremdschlüssel hinzufügen?

28
Domnic

In Oracle können Sie dies tun:

create table D (
  ID numeric(1),
  CODE varchar(2),
  constraint PK_D primary key (ID, CODE)
);
28
Simon Nickerson

alter table d add constraint pkc_Name primary key (id, code)

sollte es tun. Es gibt viele Optionen für einen grundlegenden Primärschlüssel/Index, je nachdem, mit welcher Datenbank Sie arbeiten.

30
Chris W

Die von Chris vorgestellte ALTER TABLE - Anweisung sollte funktionieren, aber zuerst müssen Sie die Spalten NOT NULL Deklarieren. Alle Teile eines Primärschlüssels müssen NOT NULL Sein.

6
Thilo

Sie müssen die Tabelle nicht erst erstellen und dann in den folgenden Schritten die Schlüssel hinzufügen. Sie können beim Erstellen der Tabelle sowohl Primärschlüssel als auch Fremdschlüssel hinzufügen:

In diesem Beispiel wird davon ausgegangen, dass eine Tabelle (Codes) vorhanden ist, auf die wir mit unserem Fremdschlüssel verweisen möchten.

CREATE TABLE d (
id [numeric](1),
code [varchar](2),
PRIMARY KEY (id, code),
CONSTRAINT fk_d_codes FOREIGN KEY (code) REFERENCES Codes (code)
)

Wenn Sie keine Tabelle haben, auf die wir verweisen können, fügen Sie eine solche hinzu, damit das Beispiel funktioniert:

CREATE TABLE Codes (
    Code [varchar](2) PRIMARY KEY   
    )

HINWEIS: Sie müssen eine Tabelle haben, auf die Sie verweisen können, bevor Sie den Fremdschlüssel erstellen.

4
Jon Crowell

Wenn Sie SQL Server Management Studio Designer verwenden, wählen Sie einfach beide Zeilen (Umschalt + Klicken) und Primärschlüssel festlegen.

enter image description here

2
Brent