2013-10-06 24 views
12

私のtbstreamにデータを入力しようとすると、エラーメッセージ#1054 - 'フィールドリスト'に 'FK_Customer_ID'という不明な列が表示されます。 私のコードを壊してみましたが、これを実行するとFK_Customer_IDとOrderQuantityに対してエラーが繰り返されますが、FK_DVD_IDでは単一のデータエントリが使用されることがわかりました。私はテーブルを落として再作成しようとしましたが、データベースを落として再作成しましたが、何も動作しません。限り、私のコードは私のスペルと一緒に正しいと言うことができるので、私は本当に立ち往生しています。MySQLのエラー#1054 - 'フィールドリスト'の不明な列

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

私はFK_Customer_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); 

に入れしようとしていたデータは -

マイtblorder

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コンピューティングレッスンで私を助けてくれるので、これを修正する助けがあれば幸いです。

+0

phpmyadminを使用して、外部キーの制約を含むテーブルを作成し、得られたものを比較してください。 – Tarik

答えて

19

OrderQuantity列にエラーがあります。これは、INSERTステートメントでは「OrderQuantity」、テーブル定義では「OrderQantity」という名前です。

また、NOW()をOrderDateのデフォルト値として使用することはできません。次を使用してみてください:

OrderDate TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP 

Example Fiddle

1

私は、このエラーaswellを持っていました。

私はmysql workbenchで作業しています。値を与えるとき、それらは内部になければなりません ""。それは私のためにそれを解決しました。

関連する問題