• ベストアンサー

and条件のようなプライマリ制約

現在データベースの設計をしておりますが、insertの際、プライマリキー、ユニークキーではAというカラムが同じだとできないとなりますが、 A,Bが両方同じでエラーをかえすということはできませんでしょうか。 卒論の最終段階へきて、つまづいております。どなたかご教授いただけませんでしょうか。 使用データベースはMySqlです。

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

  • ベストアンサー
回答No.2

プライマリキーを複数列で構成してもいいし、unique制約を付けてもいいです。 (1)primary keyにする create table tbl1 (c1 int, c2 int, c3 varchar(3), primary key(c1,c2)) (2)unique制約を付ける create table tbl1 (c1 int, c2 int, c3 varchar(3), unque(c1,c2)) (3)uniqueインデクスを付ける create table tbl1 (c1 int, c2 int, c3 varchar(3)); create unique index tbl1ix1 on tbl1(c1,c2) なお、primary keyやunique制約を付けた場合、重複チェックのために内部的にインデクスが作成されます。

mackie01
質問者

お礼

丁寧なご回答有難うございます。 インデクスなどまだ理解できていない部分がありますが、もう少し勉強してどうしても分からなければまた質問させていただくかもしれません。 どうもありがとうございました。

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

普通にA,Bをつかったユニークにすればよいのでは? ALTER TABLE `hoge` ADD UNIQUE (`A`,`B`);

mackie01
質問者

お礼

できました! 早速のご回答有難うございます。 人に教えれるぐらいになるよう精進します。

関連するQ&A