• 締切済み

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」を外部キーにしたい場合は、どうしたらいいのでしょうか?

みんなの回答

  • hhayato10
  • ベストアンサー率37% (6/16)
回答No.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文)です。

mikmik_a
質問者

お礼

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

関連するQ&A