[pgsql-jp: 37132] Re: 指定した範囲の複数行を削除したい

Yasuhiro Shibutani yasuhiro_shibutani @ ybb.ne.jp
2006年 5月 31日 (水) 19:31:56 JST


渋谷です。

実際には LIMIT OFFSET と一緒に ORDER BY 句を使ってますよね?
(でないと何が消えるか分からないので・・・)

サブクエリの結果からユニークキーを取り出して
等価比較するのではなく、ソートに使用している
フィールドの MIN と MAX を取得してその範囲を
削除すれば良いのではないでしょうか。

ソートフィールドに重複がある場合(timestamp 型など)、
削除される件数が一定にならない可能性がありますが、
用件的には問題とならない場合が多いように思います。


On Wed, 31 May 2006 17:59:05 +0900
Matsumoto Taichi <taichino @ naoko-takeuchi.net> wrote:

> 松本です。
> 
> 早川様、板垣様、加藤様、
> ご返信ありがとうございました。
> 
> ただお恥ずかしいことに、ユニークキーを
> 持たないテーブルを作成してしまい変更するのが難しい状況です。
> 対象のテーブルがユニークキーを持たない場合は
> そのようなそのような指定ができないのでしょうか。
> 
> 
> もしユニークキーを持たないテーブルに対しても
> 使用可能な書式があればご教授願えないでしょうか。
> 
> 
> 以上お手数ですが宜しくお願いいたします。
> 
> 
> -----------------------------------------------------------
> 	Matsumoto Taichi	:	taichino @ naoko-takeuchi.net
> -----------------------------------------------------------

-- 
Yasuhiro Shibutani <yasuhiro_shibutani @ ybb.ne.jp>




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