Re: update only if single row

Поиск
Список
Период
Сортировка
От tjk@tksoft.com
Тема Re: update only if single row
Дата
Msg-id 200004070939.CAA25714@uno.tksoft.com
обсуждение исходный текст
Ответ на Re: update only if single row  ("Leonid P. Klemjatsionok" <kl@84105.aanet.ru>)
Список pgsql-sql
Excellent solution.

You can use oid as the unique attribute.


 UPDATE contact SET bounce = 1 WHERE email ~* 'rvro' AND email NOT IN
  (SELECT c1.email FROM contact c1, contact c2
   WHERE c1.oid != c2.oid AND c1.email = c2.email);


Troy


>
> Hi
>
> FB> select * from contact where email ~* 'rvro';
> FB> if I get a single row in the result then I enter:
> FB> update contact set bounce=1 where  email ~* 'rvro';
>
> FB> Can I combine this into a single SQL statement with the following
> FB> requirements:
> FB> 1) the update is only performed if a single row is selected
> FB> 2) I only enter the selection string ('rvro' in this case) once in the
> FB> command?
>
> Assume that pk is PRIMARY KEY (or UNIQUE attribute) of relation contact.
>
> UPDATE contact SET bounce = 1 WHERE email ~* 'rvro' AND NOT email IN
>  (SELECT c1.email FROM contact c1, contact c2
>   WHERE c1.pk != c2.pk AND c1.email = c2.email);
>
> LPK Station                            mailto:kl@84105.aanet.ru
>
>
>

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

Предыдущее
От: "Moray McConnachie"
Дата:
Сообщение: Re: update only if single row
Следующее
От: "Moray McConnachie"
Дата:
Сообщение: Maxima per row