みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

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

解決済みの質問

MySQLの外部キーの設定について

はじめまして。
質問があります。
MySQLを使用しているのですが、以下を見てください。
----------------------------------------------------------------
mysql> create table vendors
-> (
-> vend_id char(10) NOT NULL,
-> vend_name char(50) NOT NULL,
-> vend_zip char(10),
-> vend_state char(10),
-> vend_city char(50),
-> vend_address char(50),
-> primary key(vend_id)
-> ) TYPE=MyISAM;
Query OK, 0 rows affected (0.38 sec)

mysql> create table products
-> (
-> prod_id char(10) NOT NULL,
-> vend_id char(10) NOT NULL,
-> prod_name char(255) NOT NULL,
-> prod_price decimal(8,0) NOT NULL,
-> prod_desc blob,
-> primary key(prod_id),
-> foreign key(vend_id) references vendors(vend_id)
-> ) TYPE=MyISAM;
Query OK, 0 rows affected (0.05 sec)
----------------------------------------------------------------
外部キーを設定したつもりなのですが、desc productsを実行すると
キーフィールドに「pri」と表示されているので、主キーが
設定されていることが確認できるのですが、外部キーが設定されて
いることは確認できません。外部キーは設定されているのでしょうか?
もし設定されていないのなら、どのようにすればよいのでしょうか?
また、外部キーが設定されていることを確認するにはどうすれば
よいでしょうか?ご教授お願いします。

投稿日時 - 2006-11-13 20:32:55

QNo.2537252

すぐに回答ほしいです

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

MySQLのバージョンが不明なので、
私が使っていた4.1では、MyIsamに対してFOREIGN KEY制約
はつけることができませんでした。
参照先・元共にInnoDBでないとだめです。
下の参考URLに記載されています。

また、参照方法ですが、参考URLの一番下にある
SHOW TABLE STATUS FROM yourdatabasename LIKE 'T'
このコマンドで参照することができるのではないでしょうか?

参考URL:http://dev.mysql.com/doc/refman/4.1/ja/innodb-foreign-key-constraints.html

投稿日時 - 2006-11-14 09:12:50

お礼

naochancom様へ
ご回答ありがとうございした。
連絡が遅れましてすみませんでした。
MySQLのバージョンは3.23.49でした。
今日MySQL5.0をインストールしてInnoDB
で作成してみようと思います。
ありがとうございました。

投稿日時 - 2006-11-14 14:16:10

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

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

回答(1)

あなたにオススメの質問