MySQL 错误 #1054 -“字段列表”中的未知列
Posted
技术标签:
【中文标题】MySQL 错误 #1054 -“字段列表”中的未知列【英文标题】:MySQL error #1054 - Unknown column in 'Field List' 【发布时间】:2013-10-13 07:42:47 【问题描述】:每当我尝试将数据输入到我的 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 计算课程!
【问题讨论】:
使用 phpmyadmin 创建包含外键约束的表并比较你得到的。 【参考方案1】:您的 OrderQuantity 列中有错误。它在 INSERT 语句中命名为“OrderQuantity”,在表定义中命名为“OrderQantity”。
另外,我认为您不能在 OrderDate 中使用 NOW()
作为默认值。尝试使用以下内容:
OrderDate TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
Example Fiddle
【讨论】:
【参考方案2】:对我来说,这是那些令人难以置信的愚蠢错误之一(就我而言),但我花了很多时间才找到它。我创建了一个新表,并反复收到 #1054 错误,即使该表确实有“未知列”。
然后,当我盯着表定义想知道问题出在哪里时,我注意到列名几乎不知不觉地没有在列列表上完美地垂直排列。
原来有一个 SPACE 潜入列名定义中。哦!因此,实际的列名不是“colName”,而是“colName”。因此出现错误消息。
我知道这很愚蠢,但有时错误就是这样。只是想我会提到它,以防这个问题潜伏在那里。
【讨论】:
【参考方案3】:我也遇到了这个错误。
我在 mysql 工作台上工作。给出值时,它们必须在“”内。这为我解决了。
【讨论】:
以上是关于MySQL 错误 #1054 -“字段列表”中的未知列的主要内容,如果未能解决你的问题,请参考以下文章
从 pandas 数据框创建 MySQL 表 - 错误 1054 (42S22)
用navicat for mysql 写存储过程总是报1054错误
mysql查询英文数据时报错1054,而查数字数据却没问题?