2016-03-29 24 views
-1

Frage
Ich versuche, die Spalte ID aus der Tabelle des Kunden mit C_ID in der Tabelle Käufe zu verknüpfen. Ich lerne immer noch SQL, also habe ich ein leichtes Wissen und bin nicht sicher, warum dieser Fehler auftritt. Wenn jemand eine Lösung anbieten könnte und zeigen würde, wo ich falsch gelaufen bin, wäre das großartig.Fehler: Spalte existiert nicht in der Tabelle (Foreign Key-Referenzierung)

Fehlermeldung
enter image description here

SQL-Code

CREATE TABLE Customer (

ID INTEGER, 
Firstname VARCHAR (15), 
Lastname VARCHAR (15), 
Address VARCHAR (254), 
Postcode VARCHAR (8), 
Email VARCHAR (254), 
Phoneno INTEGER, 
Points INTEGER, 
PRIMARY KEY (ID) 
); 

CREATE TABLE Purchases (

C_ID INTEGER, 
GameName VARCHAR(30), 
ConsoleType VARCHAR (20), 
Price VARCHAR (254), 
PaymentType VARCHAR (20), 
Date TIMESTAMP, 
PointsGained INTEGER, 
PRIMARY KEY (C_ID), 
FOREIGN KEY (ID) REFERENCES Customer(ID) 
); 
+0

Fehlermeldungen sind manchmal sehr spezifisch. Dies ist eine dieser Gelegenheiten. Wenn Sie Programmierer werden wollen, sind das Lesen und Interpretieren von Fehlermeldungen die Fähigkeiten, die Sie brauchen. Dieser ist so klar und spezifisch, dass er darauf hindeutet, dass Sie ihn vielleicht gar nicht gelesen haben. Abgesehen davon sind die Botschaften manchmal vage, aber das ist eine andere Geschichte. –

Antwort

2

Ich glaube, Sie den Primärschlüssel und Fremdschlüssel-Spalte fehl am Platz auch Kauf Tabelle Primärschlüsselspalte

Sie nicht hinzugefügt haben
CREATE TABLE Purchases 
(
ID INTEGER, -- Primary key column 
C_ID INTEGER, 
GameName VARCHAR(30), 
ConsoleType VARCHAR (20), 
Price VARCHAR (254), 
PaymentType VARCHAR (20), 
Date TIMESTAMP, 
PointsGained INTEGER, 
PRIMARY KEY (ID), 
FOREIGN KEY (C_ID) -- Replace ID with C_ID 
    REFERENCES Customer(ID) 
); 
+1

schlagen Sie mich um eine Sekunde :-) –

+0

@ZoharPeled - Ha ha, dass auch wir beide mit ähnlichen Gedanken kamen: P –

1

Sie haben keine Spalte ID in Ihrer Purchases Tabelle.
Scheint mir sollte es so sein:

CREATE TABLE Purchases (
    ID INTEGER, 
    C_ID INTEGER, 
    GameName VARCHAR(30), 
    ConsoleType VARCHAR (20), 
    Price VARCHAR (254), 
    PaymentType VARCHAR (20), 
    Date TIMESTAMP, 
    PointsGained INTEGER, 
    PRIMARY KEY (ID), 
    FOREIGN KEY (C_ID) REFERENCES Customer(ID) 
); 

Damit die ID Spalte der Primärschlüssel ist und die C_ID Spalte der Fremdschlüssel für die Kunden ist.

Verwandte Themen