Foreign Key Mismatch ...

Zahlhirte

Benutzer
Beiträge
12
Hey Lieber Leser,

habe ein kleines Problem und bin anscheinend zu Blind um den Fehler zu sehen:

Ich habe zwei Tabellen

Haus und Bewohner

und die Bewohner sind von der HausNr. "Abhängig" sprich FK,
während ich die Tabelle Haus, mit so viel Datensätzen befüllen kann wie ich lustig bin, bekomme ich bei Bewohner keinen Einzigen hin:

z.B.

Die Tabelle Haus:
HausNr. Name
1 Gruen
2 Blau

Und bei Tabelle Bewohner soll stehen:

Name WohntIn
Schulz 1

geht aber nicht und ich sehe nicht weshalb.


CREATE TABLE Haus (

HausNr INTEGER,

Name UNIQUE

);

CREATE TABLE Bewohner (

Name VARCHAR,

WohntIn NOT NULL

REFERENCES Haus (HausNr) ON DELETE CASCADE

ON UPDATE NO ACTION

);
 
Werbung:
habe ein kleines Problem und bin anscheinend zu Blind um den Fehler zu sehen:

Also ich sehe erst einmal Syntaxfehler:

Code:
test=# CREATE TABLE Haus (
test(#
test(# HausNr INTEGER,
test(#
test(# Name UNIQUE
test(#
test(# );
FEHLER:  Syntaxfehler bei »UNIQUE«
LINE 3: Name UNIQUE
             ^
test=*# CREATE TABLE Haus (
HausNr INTEGER,
Name text UNIQUE
);
CREATE TABLE
test=*#     CREATE TABLE Bewohner (
test(#
test(#     Name VARCHAR,
test(#
test(#     WohntIn NOT NULL
test(#
test(#     REFERENCES Haus (HausNr) ON DELETE CASCADE
test(#
test(#     ON UPDATE NO ACTION
test(#
test(#     );
FEHLER:  Syntaxfehler bei »NOT«
LINE 3:     WohntIn NOT NULL
                    ^
test=*#     
test=*#
test=*#     CREATE TABLE Bewohner (
    Name VARCHAR,
    WohntIn text NOT NULL
    REFERENCES Haus (HausNr) ON DELETE CASCADE
    ON UPDATE NO ACTION
    );
FEHLER:  in Tabelle »haus«, auf die verwiesen wird, gibt es keinen Unique-Constraint, der auf die angegebenen Schlüssel passt
test=*#

Nach Korrektur der zwei Syntaxfehler (Datentyp vergessen) der nächste Fehler.

tl;dr

es ist nicht hilfreich, kaputtes SQL zu zeigen (und zu suggerieren, daß die Tabellen so erstellt wurden), und Dein "während ich die Tabelle Haus, mit so viel Datensätzen befüllen kann wie ich lustig bin, bekomme ich bei Bewohner keinen Einzigen hin:" ist alles mögliche (z.B. Müll), aber definitiv keine sinnvolle Fehlerbeschreibung.

Vielleicht machst Du es demnächst deinen potentiellen Helfern einfacher, indem Du

  • nachvollziehbar zeigst, was Du hast
  • erklärst, was Du willst
  • zeigst, was Du versucht hast
  • und welche exakten Fehler da kamen
 
Zurück
Oben