2012-03-12 7 views
0

私は割り当てのためのコマースシステムを作成しようとしています。 QSEEを使用してERD here is a screen shot of itを作成しました。私は、SQLの機能の中に、個々の文をコピー&ペーストしようとしたが、それが存在しないフィールドに関するエラーメッセージをスローし、文書全体をインポートすることはできません:PHPmyAdminがエラーをスローアップし、SQLを正常にインポートできません。

CREATE TABLE _customer(
CustomerID INTEGER NOT NULL, 
FirstName VARCHAR(20) NOT NULL, 
LastName VARCHAR(20) NOT NULL, 
Building VARCHAR(20) NOT NULL, 
Address1 VARCHAR(30) NOT NULL, 
Address2 VARCHAR(30), 
City VARCHAR(20) NOT NULL, 
County VARCHAR(20), 
Postcode VARCHAR(8) NOT NULL, 
Phone INTEGER, 
Email VARCHAR(30) NOT NULL, 
Password VARCHAR(20) NOT NULL, 
BillingBuilding VARCHAR(20) NOT NULL, 
BillingAddress1 VARCHAR(20) NOT NULL, 
BillingAddress2 VARCHAR(20), 
BillingCity VARCHAR(20) NOT NULL, 
BillingCounty VARCHAR(20), 
BillingPostcode VARCHAR(8) NOT NULL, 
ShippingBuilding VARCHAR(20), 
ShippingAddress1 VARCHAR(20), 
ShippingAddress2 VARCHAR(20), 
ShippingCity VARCHAR(20), 
ShippingCounty VARCHAR(20), 
ShippingPostcode VARCHAR(8), 
-- Specify the PRIMARY KEY constraint for table "_customer". 
-- This indicates which attribute(s) uniquely identify each row of data. 
CONSTRAINT pk__customer PRIMARY KEY (CustomerID) 
); 

CREATE TABLE _product(
    ProductID INTEGER NOT NULL, 
    SKU INTEGER NOT NULL, 
    Name VARCHAR(20), 
    Description VARCHAR(100), 
    StockQuantity INTEGER NOT NULL, 
    UnitPrice INTEGER NOT NULL, 
    Size VARCHAR(1) NOT NULL, 
    Colour VARCHAR(8) NOT NULL, 
    Picture VARCHAR(15), 
    LastUpdate TIMESTAMP(8), 
    fk1_SupplierID INTEGER NOT NULL, 
    -- Specify the PRIMARY KEY constraint for table "_product". 
    -- This indicates which attribute(s) uniquely identify each row of data. 
    CONSTRAINT pk__product PRIMARY KEY (ProductID) 
); 

CREATE TABLE _customerorder(
    OrderID INTEGER NOT NULL, 
    OrderDate TIMESTAMP(8) NOT NULL, 
    Amount DECIMAL(8,2), 
    fk1_PaymentID INTEGER NOT NULL, 
    fk2_CustomerID INTEGER NOT NULL, 
    -- Specify the PRIMARY KEY constraint for table "_customerorder". 
    -- This indicates which attribute(s) uniquely identify each row of data. 
    CONSTRAINT pk__customerorder PRIMARY KEY (OrderID,fk1_CustomerID) 
); 

CREATE TABLE _payment(
    PaymentID INTEGER NOT NULL, 
    PaymentType VARCHAR(20) NOT NULL, 
    -- Specify the PRIMARY KEY constraint for table "_payment". 
    -- This indicates which attribute(s) uniquely identify each row of data. 
    CONSTRAINT pk__payment PRIMARY KEY (PaymentID) 
); 

CREATE TABLE _orderedproduct(
    OrderDetailID INTEGER NOT NULL, 
    Quantity INTEGER, 
    Total INTEGER, 
    Size INTEGER, 
    Colour INTEGER, 
    fk1_OrderID INTEGER NOT NULL, 
    fk1_fk1_CustomerID INTEGER NOT NULL, 
    fk2_ProductID INTEGER NOT NULL, 
    -- Specify the PRIMARY KEY constraint for table "_orderedproduct". 
    -- This indicates which attribute(s) uniquely identify each row of data. 
    CONSTRAINT pk__orderedproduct PRIMARY KEY (OrderDetailID) 
); 

CREATE TABLE _supplier(
    SupplierID INTEGER NOT NULL, 
    CompanyName VARCHAR(20) NOT NULL, 
    SalesFirstName VARCHAR(20) NOT NULL, 
    SalesLastName VARCHAR(20) NOT NULL, 
    SalesTitle VARCHAR(20), 
    Address1 VARCHAR(20) NOT NULL, 
    Address2 VARCHAR(20), 
    City VARCHAR(20), 
    County VARCHAR(20), 
    Phone INTEGER, 
    Email VARCHAR(30), 
    -- Specify the PRIMARY KEY constraint for table "_supplier". 
    -- This indicates which attribute(s) uniquely identify each row of data. 
    CONSTRAINT pk__supplier PRIMARY KEY (SupplierID) 
); 


ALTER TABLE _customerorder ADD CONSTRAINT fk1__customerorder_to__payment FOREIGN KEY(fk1_PaymentID) REFERENCES _payment(PaymentID) ON DELETE RESTRICT ON UPDATE RESTRICT; 

ALTER TABLE _orderedproduct ADD CONSTRAINT fk1__orderedproduct_to__customerorder FOREIGN KEY(fk1_OrderID,fk1_fk1_CustomerID) REFERENCES _customerorder(OrderID,fk1_CustomerID) ON DELETE RESTRICT ON UPDATE RESTRICT; 

ALTER TABLE _orderedproduct ADD CONSTRAINT fk2__orderedproduct_to__product FOREIGN KEY(fk2_ProductID) REFERENCES _product(ProductID) ON DELETE RESTRICT ON UPDATE RESTRICT; 

ALTER TABLE _product ADD CONSTRAINT fk1__product_to__supplier FOREIGN KEY(fk1_SupplierID) REFERENCES _supplier(SupplierID) ON DELETE RESTRICT ON UPDATE RESTRICT; 

ALTER TABLE _customerorder ADD CONSTRAINT fk2__customerorder_to__customer FOREIGN KEY(fk2_CustomerID) REFERENCES _customer(CustomerID) ON DELETE RESTRICT ON UPDATE RESTRICT 

+1

エラーメッセージを投稿できますか? –

+0

@SamDurfel確かに: '#1072 - キー列' fk1_CustomerID 'がテーブルにありません。つまり、_customerorderテーブルの末尾にあります。 –

+0

あなたの問題があります。カラムがありませんあなたのcustomerorderテーブルに 'fk1_CustomerID'と呼ばれています。 –

答えて

1

すべてのTIMESTAMP(N)タイプをTIMESTAMPに変更します。幅オプション(N)は以前から削除されていました。

+0

ありがとう、有用ですが、私の問題は解決しません。 –

+1

私はあなたのスクリプトを実行し、それはTIMESTAMPについて不平を言った。修正されたスクリプトを実行すると、エラーも発生します。 PRIMARY KEY(OrderID、fk1_CustomerID)をPRIMARY KEY(OrderID、fk2_CustomerID)に変更する必要があります。 –

+0

また、後でALTERステートメントで_customerorder(OrderID、fk2_CustomerID)を変更する必要があります。または、fk1_CustomerIDをfk2に変更する代わりに、CREATE TABLEステートメントで列名を変更できます。 –

関連する問題