[pgsql-jp: 32287] 外部キーとテーブルの継承
DODO
dodo @ o-su.com.au
2004年 2月 19日 (木) 08:50:32 JST
いつもお世話になっております。
外部キーの被参照テーブルに、継承したテーブルがあった場合、
その継承したテーブルまで指定した値があるかどうか検索
してくれないのでしょうか。
これは少々不便なのですが,仕様なのでしょうか。
過去ログに同じような記事がないため投稿いたします。
Postgres は 7.3.4 です。
例:3つのテーブルがあります。
CREATE TABLE "box" (
"id" SERIAL,
PRIMARY KEY("id")
);
CREATE TABLE "box_addr" (
"mes" TEXT
)INHERITS ("box");
CREATE TABLE "box_file" (
"box_addr_id" INTEGER NOT NULL,
"filename" TEXT,
FOREIGN KEY ("box_file-box_addr_id") REFERENCES "box"("id")
ON DELETE CASCADE
ON UPDATE CASCADE
NOT DEFERRABLE
);
ここで、box_addrに一行入れます。
insert into box_addr(mes) values("mes");
ここで id は 1 が挿入されたとします。
つぎに、box_fileに1行入れようとすると、参照エラーとなり
挿入できません。
insert into box_file( box_addr_id, filename) values(1, "filename");
ERROR: box_file-box_addr_id referential integrity violation
REFERENCES "box"("id") の部分は、継承されたテーブルまでは
チェックしてくれないでしょうか。
それとも、なにかオプションがあるのでしょうか。
百々
pgsql-jp メーリングリストの案内