MySQL错误#1054 - "字段列表"中的未知列

use*_*418 14 mysql mysql-error-1054

每当我尝试将数据输入到我的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)
);
Run Code Online (Sandbox Code Playgroud)

我试图提供的数据是 -

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);
Run Code Online (Sandbox Code Playgroud)

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)
);
Run Code Online (Sandbox Code Playgroud)

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)
);
Run Code Online (Sandbox Code Playgroud)

任何帮助修复将非常感谢,因为它将帮助我进行我的A2计算课程!

Sal*_*lem 22

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

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

 OrderDate TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
Run Code Online (Sandbox Code Playgroud)

示例小提琴