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

締切り済みの質問

MySQLでCREATE TABLE

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

投稿日時 - 2002-11-06 14:20:59

QNo.398257

困ってます

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

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

回答(1)

ANo.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文)です。

投稿日時 - 2002-11-10 02:39:08

お礼

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

投稿日時 - 2002-11-11 13:57:34

あなたにオススメの質問