Re: How to delete multiple records

Поиск
Список
Период
Сортировка
От Reinoud van Leeuwen
Тема Re: How to delete multiple records
Дата
Msg-id 20060914070929.GC60441@spoetnik.xs4all.nl
обсуждение исходный текст
Ответ на How to delete multiple records  (Javanesevn <thanhle@sangtao.net>)
Список pgsql-sql
On Thu, Sep 14, 2006 at 03:07:35PM +0900, Javanesevn wrote:
> Dear all,
> 
> I execute this query on below:
> 
>      delete from PRODUCT
>      where exists (
>           select
>                 product_id, item_id
>           from PRODUCT
>           where
>                research_date < '2006-01-01'
>     )
> this query deleted all records data in PRODUCT table. The subquery 
> return only some records.
> Tell me about other idea? and What's wrong from this query.

The easiest way is to do it like this:

delete from PRODUCT
where research_date < '2006-01-01'

But if you really want to use a subquery, you want to relate it to the 
current record:

delete from PRODUCT
where product_in in (    select product_id    from PRODUCT    where research_date < '2006-01-01'
)

In your example you just test if some records exist. They allways do, so 
the where clause evaluates to true for every row


-- 
__________________________________________________
"Nothing is as subjective as reality"
Reinoud van Leeuwen    reinoud.v@n.leeuwen.net
http://www.xs4all.nl/~reinoud
__________________________________________________


В списке pgsql-sql по дате отправления:

Предыдущее
От: Markus Schaber
Дата:
Сообщение: Re: How to delete multiple records
Следующее
От: zqzuk
Дата:
Сообщение: nested select within a DISCTINCT block