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

締切り済みの質問

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]
---------------------------------------
わかりづらくて申し訳ありませんが、
宜しくお願いいたします。

投稿日時 - 2003-05-29 11:10:10

QNo.560494

すぐに回答ほしいです

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

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

回答(2)

ANo.2

uniqueって使えませんでしたっけ?

create table test_db (
id int8 unique,
name varchar(32) unique,
day date)

投稿日時 - 2003-05-29 13:45:12

補足

回答ありがとうございます。

PostgreSQLにuniqueなんてあるんですね。
勉強不足でした。
試しています。

投稿日時 - 2003-05-29 15:19:52

ANo.1

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

投稿日時 - 2003-05-29 12:57:57

補足

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

投稿日時 - 2003-05-29 15:18:57

あなたにオススメの質問