Access Fremdschlüssel aus zusammengesetzen Primärschlüssel

Paul66

Neuer Benutzer
Beiträge
4
Kann ich in einer Access Datenbank einen zusammengesetzten Fremdschlüssel in Referenz zu einem zusammengesetzten Primärschlüssel erstellen?
 
Werbung:
sowas hier?

Code:
postgres=# create table paul66(a int, b int, primary key(a,b));
CREATE TABLE
postgres=# create table paul66_detail (a int, b int, data text, foreign key(a,b) references paul66);
CREATE TABLE
postgres=#

Falls ja, warum probierst Du es nicht? Falls nein, was dann?
 
Werbung:
Code:
postgres=# create table tabelle1(a int, b int, primary key(a, b));
CREATE TABLE
postgres=# create table tabelle2(a int, b int, foreign key(a, b) references tabelle1(a, b));
CREATE TABLE
postgres=# insert into tabelle1(a, b) values (1, 1);
INSERT 0 1
postgres=# insert into tabelle2(a, b) values (1, 2);
FEHLER:  Einfügen oder Aktualisieren in Tabelle »tabelle2« verletzt Fremdschlüssel-Constraint »tabelle2_a_b_fkey«
DETAIL:  Schlüssel (a, b)=(1, 2) ist nicht in Tabelle »tabelle1« vorhanden.
postgres=# insert into tabelle2(a, b) values (1, 1);
INSERT 0 1
postgres=#

ja, funktioniert ;)

Demonstration im obrigem Code ;D

EDIT:
Code:
postgres=# select * from tabelle1;
 a | b
---+---
 1 | 1
(1 Zeile)

postgres=# select * from tabelle2;
 a | b
---+---
 1 | 1
(1 Zeile)

EDIT2:
Code:
postgres=# insert into tabelle1(a, b) values (1, 2);
INSERT 0 1
postgres=# insert into tabelle2(a, b) values (2, 1);
FEHLER:  Einfügen oder Aktualisieren in Tabelle »tabelle2« verletzt Fremdschlüssel-Constraint »tabelle2_a_b_fkey«
DETAIL:  Schlüssel (a, b)=(2, 1) ist nicht in Tabelle »tabelle1« vorhanden.
postgres=#

EDIT3: (Erklärung)
Die Reihenfolge muss übereinstimmen. Sprich die Spalte1 oder Spalte2 wie in gewollter Reihenfolge angeben und dann im Foreign Key ebenfalls.
 
Zuletzt bearbeitet:
Zurück
Oben