[pgsql-jp: 35548] Re: プライマリーキーが重複する??

shima tetuo mlmlml @ lily.freemail.ne.jp
2005年 6月 22日 (水) 13:58:19 JST


> (1)直接重複していると思われるURLを指定して検索するとどうなるか?
> => SELECT * FROM table_url WHERE url = 'http://some.url.local/xxx/yyy/zzz';
> 
> これで重複した結果がでてくると終ってしまいますが。。。

url = 'target URL'で行くと、1行しかヒットしませんが、
****************************************
select
*
from
table_url
where
url = 'http://some.url.local/xxx/yyy/zzz'

クエリー全体 実行時間:141 ms.
データ検索 実行時間:47 ms.
1 行検索しました
****************************************

url like 'target URL%'で検索すると2件ヒットします。
通常ですと、likeなので%以降は似たようなものが検索結果として表示されます
が、問題となっているテーブルでは2件ヒットします。
プライマリーキーとなっているurlは”視覚的”には全く同じです。
****************************************
select
*
from
table_mail_find_job
where
url like 'http://some.url.local/xxx/yyy/zzz'

クエリー全体 実行時間:3922 ms.
データ検索 実行時間:0 ms.
2 行検索しました

検索結果例
                url                 | deleted
---------------------------------------------
http://some.url.local/xxx/yyy/zzz   |   f
http://some.url.local/xxx/yyy/zzz   |   f
****************************************


> (2)COPYでCSVをはき出して重複行を「見る」。
> => COPY table_url TO '/tmp/table_url.data' USING DELIMITER ',';
> (USINGじゃなくてWITHかな)
> 
using でしたが delimiters でした
                        ^

それはさておき、とりあえず重複している行を一旦別のtempテーブルに写し、
(実データは対象行が多い為、tempとして同構成のテーブルを作った)
そこからテーブルをCOPYでファイル出力してみました。

視覚的にはやはり一緒で、一応試しにバイナリエディタで見ましたが、1バイト
も変わりありません。


全体的に見て、とても不思議です。ここから解決に向けて試せる方法はあります
か?




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