都道府県穴埋めゲーム

MySQLでCREATE TABLEをする際に、
プライマリキーを設定する場合は、
CREATE TABLE(
AAA CHAR(5) NOT NULL,
BBB CHAR(5) NOT NULL,
CCC VARCHAR(10) NOT NULL,
PRIMARY KEY(AAA)
);
のようにすると思うのですが、「BBB」を外部キーにしたい場合は、どうしたらいいのでしょうか?

A 回答 (1件)

test1テーブルにAAA(主キー),BBB,CCC列、


test2テーブルにxxx(主キー),yyy,zzz列があると仮定します。

普通にselect文で

select xxx, CCC, yyy, zzz
from test1,test2
where test2.xxx = test1.BBB ;

と問い合わせればリレーション機能が実行されビューに表示されます。
内部結合も外部結合もSQLのデータ操作文(DML文)を使えばいいだけです。

違うテーブルに同じ列名がある場合は、列名の前にテーブル名.が必要です。
同じ列名がない場合は付けても付けなくても構いません。

また、なにか意図があって主キーを2つ設定したいのであれば、
PRIMARY KEY(AAA) の部分を
PRIMARY KEY(AAA,BBB) にしてみてはいかがでしょうか?
検索スピードを考えているのであればインデックスを付加するとか。
意味が違っていたらすみません。

ちなみにCREATE TABLEはSQLのデータ定義文(DDL文)です。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
Oracleなどでは、外部キーをFOREIGN KEY句で登録するので、MySQLでもあるのかと思ったのですが、どうやらMySQLには外部キーは存在しないようです。
ありがとうございました

お礼日時:2002/11/11 13:57

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す