Uri: SQL FOREIGN KEY

Hallo, ich möchte eine Datenbank für eine Webapplikation bauen und mir macht der Foreign Key dabei ziemliche Probleme.


-- Create Table Wohnung
create table ImmobilienDB.Wohnung(
	ID int NOT NULL
);

-- Create Table Mieter
create Table ImmobilienDB.Mieter(
	ID int NOT NULL PRIMARY KEY,
	Nachname varchar(255) NOT NULL,
	Vorname varchar(255) NOT NULL
);
 
 -- Create Table Vermietung
CREATE TABLE ImmobilienDB.Vermietung(
	Mieter int,
	Wohnung int, 
	FOREIGN KEY(Wohnung) References ImmobilienDB.Wohnung(ID),
	FOREIGN KEY(Mieter) REFERENCES ImmobilienDB.Mieter(ID) 
);

Tabelle Wohnung und Mieter sind erstellt. Wenn ich die Tabelle Vermietung erstellen will, bekomme ich den Folgenden Fehler:

ERROR 1005 (HY000): Can't create table 'ImmobilienDB.Vermietung' (errno: 150)

Ich habe zuerst versucht den Foreign Key direkt in Wohnung und Mieter zu einzubauen und bekam den gleichen Fehler.

Wenn ich es richtig verstanden habe, kommt dieser Fehler zustande, wenn man einen nicht Primary Key referenziert. Das ist aber nicht der Fall. Hoffe ihr könnt mir helfen.

Gruß Uri

  1. Hallo Uri,

    
    -- Create Table Wohnung
    create table ImmobilienDB.Wohnung(
    	ID int NOT NULL
    );
    -- […]
    

    Wenn ich es richtig verstanden habe, kommt dieser Fehler zustande, wenn man einen nicht Primary Key referenziert. Das ist aber nicht der Fall. Hoffe ihr könnt mir helfen.

    Wenn das wirklich deine Definition ist: ImmobilienDB.Wohnung.ID ist hier kein Primary Key.

    LG,
    CK

    1. Ja, hab es gerade auch gesehen als selfhtml den code in sql formatiert hat. Danke

  2. Wohnung ID war doch kein Primary Key.