[pgsql-jp: 41878] Re: 検索時に特定のPKを条件に指定するとレコードが抽出できない
清河 宗一朗
ifthatistrueornot @ yahoo.co.jp
2016年 7月 27日 (水) 10:19:59 JST
清河です。
早速のご回答ありがとうございます。
# 新標準PostgreSQLにはお世話になりましたw
REINDEXで現象が改善されました。助かりました。
> なれば少ないはずなのですが、Windows ごとクラッシュ終了して、
> ストレージに書き見損なった等があれば起きるかもしれません。
いえ、そういうことはなかったです。
実は同じ現象が一度発生し、drop databaseしてから
DB再作成した直後の今回の事象でした。
ちなみに関係あるかわかりませんが、最初の時もid=1が認識されていませんでした。
Windows8.1でも同様の環境があるのですが、そちらでは本現象は発生しておりません。
ですので、Windows10における不具合(?)の可能性もあるのかと思った次第であります。
また何か発見がありましたらご報告させて頂きます。
----- Original Message -----
> From: TAKATSUKA Haruka <harukat @ postgresql.jp>
> To: PostgreSQL Japanese Mailing List <pgsql-jp @ ml.postgresql.jp>
> Cc:
> Date: 2016/7/26, Tue 13:44
> Subject: [pgsql-jp: 41877] Re: 検索時に特定のPKを条件に指定するとレコードが抽出できない
>
>
> JPUG の高塚と申します。
>
> よくあるケースは「インデックスが壊れている」ですね。
>
> =# REINDEX INDEX pkey_aaaaa;
>
> 上記のように REINDEX して直ったなら、それで間違いありません。
>
> とはいえ Btree インデックスが壊れる障害は 9.5.2 バージョンとも
> なれば少ないはずなのですが、Windows ごとクラッシュ終了して、
> ストレージに書き見損なった等があれば起きるかもしれません。
>
>
>
> On Tue, 26 Jul 2016 01:24:00 +0900 (JST)
> 清河 宗一朗 <ifthatistrueornot @ yahoo.co.jp> wrote:
>
>> はじめまして。清河と申します。
>> 宜しくお願い致します。
>>
>> 検索時に特定の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
>>
>>
>> どうぞ、宜しくお願い致します。
>
> ______________________________________________________________________
> 日本PostgreSQLユーザ会 高塚 遙 http://www.postgresql.jp
>
pgsql-jp メーリングリストの案内