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?
In Oracle können Sie dies tun:
create table D (
ID numeric(1),
CODE varchar(2),
constraint PK_D primary key (ID, CODE)
);
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.
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.
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.