こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

CREATE テーブルでの複数外部キーの設定

MySQL5.1で、1つの表に複数の外部キーを持つとき、
CREATEテーブル発行の仕方について教えてください。

1、以下表3つ作成
得意先表
{得意先コード(主),得意先名}

注文表
{年月日,得意先コード(外),商品コード(外),数量}
※得意先コード、商品コードに、on delete cascadeをつける。

商品表
{商品コード(主),商品名,商品区分コード(外),単価}

の三つの表があります。


質問)、注文表に、2つの外部キー(得意先コード・商品コード)を設定したいと思っています。
CREATE TABLE IF NOT EXISTS `注文表` (
`注文日` date DEFAULT NULL,
`得意先コード` varchar(10) DEFAULT NULL REFERENCES 得意先表(得意先コード) on delete cascade,
`商品コード` varchar(10) DEFAULT NULL REFERENCES 商品表(商品コード) on delete cascade,
`数量` int(11) DEFAULT NULL
)

の外部キーを列制約で作成するのがいいのでしょうか?
表制約では、二つの外部キーを設定できないと思いましたので・・・。

ご教授お願いします。

投稿日時 - 2012-01-25 19:32:25

QNo.7266225

困ってます

質問者が選んだベストアンサー

表制約でも出来ますよ。
CREATE TABLE `注文表`
(
`注文日` date DEFAULT NULL,
`得意先コード` varchar(10) DEFAULT NULL ,
`商品コード` varchar(10) DEFAULT NULL ,
`数量` int(11) DEFAULT NULL,
FOREIGN KEY( `得意先コード` ) REFERENCES 得意先表(得意先コード),
FOREIGN KEY( `商品コード` ) REFERENCES 商品表(商品コード)
);

投稿日時 - 2012-01-25 20:41:56

お礼

情報ありがとうございます。
列だけかと思っていました。

すっきりしました。

投稿日時 - 2012-01-25 23:46:19

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(1)