18

每当我尝试将数据输入到我的 tblorder 中时,我都会收到错误消息 #1054 - '字段列表'中的未知列'FK_Customer_ID'。我已经尝试分解我的代码,并且在这样做时我发现 FK_Customer_ID 和 OrderQuantity 重复错误,而 FK_DVD_ID 它将采用单个数据条目。我已经尝试删除表并重新创建它,我已经删除了数据库并重新创建了它,但没有任何效果。据我所知,我的代码和拼写都是正确的,所以我真的被卡住了。

我的 tblorder 是——

CREATE TABLE tblorder
(   
 Order_ID INT AUTO_INCREMENT NOT NULL,  
 FK_Customer_ID INT NOT NULL,   
 FK_DVD_ID INT NOT NULL,    
 OrderDate DATETIME NOT NULL DEFAULT NOW(),
 OrderQantity INT NOT NULL, 
 PRIMARY KEY (Order_ID),    
 FOREIGN KEY (FK_Customer_ID) REFERENCES tblcustomer (Customer_ID), 
 FOREIGN KEY (FK_DVD_ID) REFERENCES tbldvd (PK_ID)
);

我要输入的数据是-

INSERT INTO tblorder
 (FK_Customer_ID, FK_DVD_ID, OrderQuantity)
VALUES 
 (1, 3, 2),
 (1, 5, 1),
 (1, 10, 4), 
 (1, 15, 3),
 (2, 5, 4),
 (2, 17, 3),
 (3, 15, 1),
 (3, 16, 1),
 (3, 17, 1);

FK_Customer_ID 正在寻址 -

CREATE TABLE tblcustomer
(
 Customer_ID INT AUTO_INCREMENT NOT NULL,
 FirstName VARCHAR(50) NOT NULL,
 LastName VARCHAR(50) NOT NULL,
 Age INT NOT NULL,
 PRIMARY KEY (Customer_ID)
);

FK_DVD_ID 正在寻址 -

CREATE TABLE tblDVD
(
 PK_ID INT AUTO_INCREMENT NOT NULL,
 Title VARCHAR(100) NOT NULL,
 DIrector VARCHAR(100) NOT NULL,
 Genre VARCHAR(40) NOT NULL,
 dvd_Year YEAR NOT NULL,
 Price FLOAT(2) NOT NULL,
 Quantity INT NOT NULL,
 PRIMARY KEY (PK_ID)
);

任何修复问题的帮助将不胜感激,因为它将帮助我学习 A2 计算课程!

4

3 回答 3

25

您的 OrderQuantity 列中有错误。它在 INSERT 语句中命名为“OrderQuantity”,在表定义中命名为“OrderQantity”。

另外,我认为您不能NOW()在 OrderDate 中用作默认值。尝试使用以下内容:

 OrderDate TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP

示例小提琴

于 2013-10-06T19:52:00.797 回答
2

对我来说,这是那些令人难以置信的愚蠢错误之一(就我而言),但花了很多时间来寻找它。我创建了一个新表,并反复收到 #1054 错误,即使该表确实有“未知列”。

然后,当我盯着表定义想知道问题出在哪里时,我注意到列名几乎不知不觉地没有在列列表上完全垂直排列。

原来有一个 SPACE 潜入列名定义。哦!因此,实际的列名不是“colName”,而是“colName”。因此错误消息。

我知道这很愚蠢,但有时错误就是这样。只是想我会提到它,以防这个问题潜伏在那里。

于 2021-04-23T01:38:33.657 回答
0

我也有这个错误。

我在 mysql 工作台上工作。给出值时,它们必须在“”内。这为我解决了它。

于 2017-08-17T00:46:37.623 回答