../../image/benilogo.gifPostgreSQL について


PostgreSQL のプライマリーキー制約について。

プライマリキー制約 単独の項目をプライマリーキー
プライマリキーテーブル制約 複数の項目をプライマリーキーとする

   マニュアル にある サンプル
CREATE TABLE films (
    code        CHAR(5),
    title       VARCHAR(40),
    did         DECIMAL(3),
    date_prod   DATE,
    kind        VARCHAR(10),
    len         INTERVAL HOUR TO MINUTE,
    CONSTRAINT code_title PRIMARY KEY(code,title)
);

   CONSTRAINT code_title PRIMARY KEY(code,title)
   
   制約 の名前は code_title PRIMARY KEY で内容は code,title 
   これで、複数の項目をキーとすることが出来る。
CREATE TABLE distributors (
    did     DECIMAL(3),
    name    CHAR VARYING(40),
    PRIMARY KEY(did)
); 
  • 書き方 PRIMARY KEY(did)
CREATE TABLE distributors (
    did     DECIMAL(3) PRIMARY KEY,
    name    VARCHAR(40)
);

  • did DECIMAL(3) PRIMARY KEY でも 同じ意味だそうです。

これが同じならば
CREATE TABLE films2 (
    code        CHAR(5),
    title       VARCHAR(40),
    did         DECIMAL(3),
    date_prod   DATE,
    kind        VARCHAR(10),
    len         INTERVAL HOUR TO MINUTE,
    code_title2 PRIMARY KEY(code,title)
);

   CONSTRAINT を除くと どうなるのだろうか? 

beniya=# \i films2
psql:films2:9: ERROR:  parser: parse error at or near "PRIMARY"

  ハハ やっぱりダメみたい。


ちなみに \di で Index 等を表示出来るようです。
beniya=# \di
       List of relations
     Name     | Type  | Owner
--------------+-------+--------
 ByOrderNo    | index | beniya
 PartNo       | index | beniya
 bhnmst_pkey  | index | beniya
 code_title   | index | beniya
 items0       | index | beniya
 otenki5_pkey | index | beniya
 otenki_pkey  | index | beniya
(7 rows)

  • index を表示する。


 





















2004/12/18 restart ********* Last Update 2005/05/29  16:43 JST

(C) Y.Kondou,2004,2006 All Rights, Reserved.
その他、お気づきの点がありましたら連絡先はこちらから