[pgsql-jp: 31514] Re: PostgreSQL v.s. Access

SAKATA Tetsuo sakata.tetsuo @ lab.ntt.co.jp
2003年 11月 19日 (水) 15:40:09 JST


こんにちは。坂田@横須賀です。

Toshi wrote:

> 実は,元のデータベース設計と管理が悪く,バックアップと削除のため
> のキーが一つではなく,二つです.その上,削除されるテーブルに
> 重複登録があるため,
> 
> SELECT [t1].[f1], [t1].[f2], [t1].[f3], [t1].[f4], [t1].[f5],\
> [t1].[f6], [t1].[f7], [t1].[f8] FROM t2, t1\
> WHERE [t1].[f2]=[t2].[f2] And [t1].[f5]=[t2].[f3];
> 
> なるSQL 文を実行すると,テーブルt2に24,722件しかないのに,25,115件
> ヒットします.すなわち,削除すべきデータより,多いデータを削除
> してしまいます.

SQL「で」の処理の仕方については、既に中川さんがお書きになっていますね。

この時点で考慮すべきは、

・もともとの設計で2つのカラムでの同一値を持つケースを故意に
 許しているのか?
・そうだとしたら、それは何のためか?
・t2側にも出現する行がt1に複数ある場合、
 「どれ」を削除すべきなのか?

を明らかにすべきでしょうね。
-- 
坂田 哲夫@NTT サイバースペース研究所
sakata.tetsuo_at_lab.ntt.co.jp
SAKATA, Tetsuo. Yokosuka JAPAN.




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