错误:表中没有列(外键引用)

时间:2016-03-29 15:25:31

标签: mysql sql sql-scripts

问题
我正在尝试将Customer表中的ID列链接到Purchases表中的C_ID。我还在学习SQL所以我有一个很好的知识,不知道为什么会出现这个错误。如果有人能够提供解决方案,并指出我出错的地方那就太棒了。

错误消息
enter image description here

SQL代码

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)
);

2 个答案:

答案 0 :(得分:2)

我认为你错放了主键和外键列,你也没有添加购买表主键列

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 :(得分:1)

您的ID表格中没有名为Purchases的列 在我看来它应该是这样的:

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)
);

因此ID列是主键,C_ID列是客户的外键。