2016-09-25 7 views
0

私はこれら2つのテーブルのコードを把握しようとする必要があります。私はSQL Fiddleを使用しています。sql外部キーとプライマリキーのためのfiddleコード

オーデル表

Donut Order ID (PK) INT (10)  
Customer ID(FK) INT (10)  
Order Date DATETIME (6)  
Special Notes VARCHAR (30)  

注文明細表

Donut Order ID (PK)(FK) INT (10)  
Donut ID (PK)(FK) INT (10)  
Qty INT (10)  

私は私の顧客表と私のドーナツ表を持っているが、私は外部キーを持つ表にしようとするとエラーが発生しておきます。どんな助けでも大歓迎です。

+0

あなたsqlfiddleリンクを共有することはできますか?あなたが得ているエラーと一緒に。 – Naruto

+0

表OrderTable ( donutorderidのVARCHAR(10)NULL NOT、 得意先のVARCHAR(10)NULL NOT、 oderdate日時(6)NOT NULL、 PRIMARY KEY(donutorderid)、 FOREIGN KEY(得意先)を参照の顧客を作成する(得意) ); 外部キー制約を追加できません – Danestyles

+0

お客様のテーブルスキーマはありますか?また、挿入しようとしているデータ。また、データを挿入する場合は、OrderTableに挿入する前に顧客テーブルにデータが存在することを確認してください。 – Naruto

答えて

0

私はあなたのスキーマを試してみましたが、そこにスキーマとそれが外部キー参照して

CREATE TABLE `OrderTable` (
    `donutorderid` varchar(10) NOT NULL, 
    `customerid` varchar(10) NOT NULL, 
    `oderdate` datetime(6) NOT NULL, 
    PRIMARY KEY (`donutorderid`), 
    CONSTRAINT `ordertable_ibfk_1` FOREIGN KEY (`customerid`) REFERENCES `Customer` (`customer_id`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1; 

をOrderTableためのスキーマを作成し、これを試してみてください私のため

を正常に動作しているので、あなたのALTERの小さなエラーが発生しましたコマンド

カスタマーテーブル内のフィールドの名前はcustomeridであり、customeridではありません。同じのため

ALTER TABLE OrderTable ADD INDEX checks (customerid), ADD CONSTRAINT checks FOREIGN KEY (customerid) REFERENCES Customer (customer_id); 

SQLfiddle: - - :

はこれを試してみてくださいhttp://sqlfiddle.com/#!9/0eb295

+0

ああ、ありがとう。出来た。私は今他のものを見つけ出すことができるはずです。したがって、文の最後にcustomer_idを使用する必要があります。ほんとうにありがとう。 – Danestyles

関連する問題