[pgsql-jp: 32562] Re: 外部キーについて

Kazuhiro Hiratsuka hira @ js-bros.co.jp
2004年 3月 24日 (水) 21:57:11 JST


馬場様

誠に早いレスポンス有難うございます。
早速試してみます。


----- Original Message ----- 
From: "馬場 ( 川上) 泰明" <kawakami @ mxe.nes.nec.co.jp>
To: <pgsql-jp @ ml.postgresql.jp>
Sent: Wednesday, March 24, 2004 9:46 PM
Subject: [pgsql-jp: 32561] Re: 外部キーについて


> to:平塚様
>
> 馬場と申します。お世話になります。
>
> エラーの内容ですが、外部キーが参照しに行く列は一意である必要があります
> っという意味だと思います。
>
> # まだ PostgreSQL になれていないのですが、少なくとも Oracle の場合、
> # REFERENCES で指定する列は、主キーもしくは一意キーである必要があります。
>
> WHATS_NEW_CHARA 表に、以下の制約を追加したところ、WHATS_NEW 表の作成が
> うまくいきました。
>
> sampledb=# alter table WHATS_NEW_CHARA add unique (MENU_ID);
> NOTICE:  ALTER TABLE / ADD UNIQUE will create implicit index
"whats_new_chara_menu_id_key" for table "whats_new_chara"
> ALTER TABLE
> sampledb=# alter table WHATS_NEW_CHARA add unique (TITLE_ID);
> NOTICE:  ALTER TABLE / ADD UNIQUE will create implicit index
"whats_new_chara_title_id_key" for table "whats_new_chara"
> ALTER TABLE
> sampledb=# alter table WHATS_NEW_CHARA add unique (CHARA_DATA);
> NOTICE:  ALTER TABLE / ADD UNIQUE will create implicit index
"whats_new_chara_chara_data_key" for table "whats_new_chara
> "
>
> 以上ご参考になれば幸いです。
>
> /ばば やすあき
>
>
> 2004/03/24 21:34:22 +0900に"Kazuhiro Hiratsuka" <hira @ js-bros.co.jp>さんに
頂いた
> 「[pgsql-jp: 32558] 外部キーについて」への返事です。
> >はじめまして平塚と申します。
> >すみません。先程のメールにエラーの内容をつけていませんでした。
> >
> >現在、Linux環境でpostgreSQL7.4.1を使用しています。
> >親と子のテーブル2つを参照制約付きで作成しようとしているのですが、
> >親のテーブルは正常に作成できたのですが、子の作成でエラーが発生して原因が
掴め
> >ません。
> >テーブル構成は、
> >【親】
> >CREATE TABLE WHATS_NEW_CHARA (
> >        MENU_ID SMALLINT NOT NULL,      -- メニューID
> >        TITLE_ID SMALLINT NOT NULL,     -- タイトルID
> >        CHARA_DATA CHAR (32) NOT NULL,  -- キャラデータ名
> >        REFIX_DATE DATE NOT NULL        -- 更新日
> >);
> >CREATE UNIQUE INDEX I_WHATS_NEW_CHARA1 on WHATS_NEW_CHARA
> >        ( MENU_ID, TITLE_ID, CHARA_DATA );
> >
> >【子】
> >CREATE TABLE WHATS_NEW (
> >        UP_DATE DATE NOT NULL,          -- 日付
> >        MENU_ID SMALLINT NOT NULL,      -- メニューID
> >        TITLE_ID SMALLINT NOT NULL,     -- タイトルID
> >        CHARA_DATA CHAR(32) NOT NULL,   -- キャラデータ名
> >        REFIX_DATE DATE NOT NULL,       -- 更新日
> >        FOREIGN KEY(MENU_ID)    REFERENCES WHATS_NEW_CHARA(MENU_ID),
> >        FOREIGN KEY(TITLE_ID)   REFERENCES WHATS_NEW_CHARA(TITLE_ID),
> >        FOREIGN KEY(CHARA_DATA) REFERENCES WHATS_NEW_CHARA(CHARA_DATA)
> >);
> >
> >CREATE UNIQUE INDEX I_WHATS_NEW1 on WHATS_NEW
> >        ( REFIX_DATE );
> >です。
> >
> >エラーの内容は、
> >psql:WhatsNew.sh:12: ERROR:  there is no unique constraint matching given
> >keys for referenced table "whats_new_chara"
> >です。
> >
> >どなたかご教授お願い致します。
>





pgsql-jp メーリングリストの案内