[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 メーリングリストの案内