• 締切済み

Primary Key について

PostgreSQLのPrimary Keyについて質問があります。 ---------------------------------- create table test_db ( id int8, name varchar(32), day date, constraint PK primary key( id, name)); ---------------------------------- 上記のようにtest_dbを作成しました。 データをinsertする際、 id:[1] name:[watanabe] day:[2003-05-29] id:[2] name:[watanabe] day:[2003-05-29] とするとデータが格納されてしまいます。 idとnameの両方が一致したデータは格納できないと 思うのですが、 id, name各々test_db内に対して一意なデータとして 扱いたいのですがどのようにすればいいでしょうか? [例] id:[1] name:[watanabe] day:[2003-05-29](格納済) (name:watanabeは存在するためエラー) id:[2] name:[watanabe] day:[2003-05-29] (id:1は存在するためエラー) id:[1] name:[simada] day:[2003-05-29] (正常格納) id:[2] name:[simada] day:[2003-05-29] --------------------------------------- わかりづらくて申し訳ありませんが、 宜しくお願いいたします。

みんなの回答

  • you111111
  • ベストアンサー率45% (20/44)
回答No.2

uniqueって使えませんでしたっけ? create table test_db ( id int8 unique, name varchar(32) unique, day date)

toopeaan
質問者

補足

回答ありがとうございます。 PostgreSQLにuniqueなんてあるんですね。 勉強不足でした。 試しています。

  • rara_sun
  • ベストアンサー率50% (271/539)
回答No.1

複合キーってつかえませんでしたっけ? http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/sq_k01_1.htm

toopeaan
質問者

補足

PostgreSQLに複合キーなんてあるんですね。 試してみます。 ありがとうございました。

関連するQ&A