[pgsql-jp: 41876] 検索時に特定のPKを条件に指定するとレコードが抽出できない
清河 宗一朗
ifthatistrueornot @ yahoo.co.jp
2016年 7月 26日 (火) 01:24:00 JST
はじめまして。清河と申します。
宜しくお願い致します。
検索時に特定のPKを条件に指定するとレコードが抽出できない状況に陥っています。
■現象
=> \d aaaaa
id integer not null default nextval('bbb_seq'::regclass)
name varchar(20) ・・・・・・
インデックス:
"pkey_aaaaa" PRIMARY KEY, btree (id)
参照元:
TABLE "ccccc" CONSTRAINT "fkey_ccccc" FOREIGN KEY (id) REFERENCES aaaaa(id)
=> select * from aaaaa;
id | name ・・・・
-----------------------
1 | name1
2 | name2
3 | name3
=> select * from aaaaa where id = 1;
id | name ・・・・
-----------------------
=> select * from aaaaa where id = 2;
id | name ・・・・
-----------------------
2 | name2
=> select * from aaaaa where name = 'name1';
id | name ・・・・
-----------------------
1 | name1
上記のように、id=1のレコードは存在しており、
PK以外を検索条件にした場合はヒットするのですが、
PKを条件にした場合のみ抽出されません。
PKのid=1が認識されていないため、
参照整合性制約のある先のテーブルcccccにid=1のレコードを挿入しようとするときも
ERROR: insert or update on table "ccccc" violates foreign key constraint "fkey_ccccc"
DETAIL: Key (id)=(1) is not present in table "aaaaa".
が発生しています。
不具合?の動きのような気もしており、
以前はこのようなことはなかったと思うのですが、
最近Windows7→Windows10にアップデートした影響でしょうか・・・??
■環境
OS:Windows10 Home
DB:PostgreSQL 9.5.2
どうぞ、宜しくお願い致します。
pgsql-jp メーリングリストの案内