Re: UPDATE/DELETE with ORDER BY and LIMIT

Поиск
Список
Период
Сортировка
От Alban Hertroys
Тема Re: UPDATE/DELETE with ORDER BY and LIMIT
Дата
Msg-id 094AC2C4-3294-41DA-9024-56AC741741DE@solfertje.student.utwente.nl
обсуждение исходный текст
Ответ на UPDATE/DELETE with ORDER BY and LIMIT  (Bartłomiej Korupczyński <bartek-fora@klolik.org>)
Ответы Re: UPDATE/DELETE with ORDER BY and LIMIT  (Bartlomiej Korupczynski <bartek-sql@klolik.org>)
Список pgsql-general
On 24 Sep 2010, at 21:20, Bartłomiej Korupczyński wrote:

> Hi guys,
>
> I've found some posts from 2007 about UPDATE/DELETE ... LIMIT N syntax
> and I'd like to raise it again. Current PostgreSQL of UPDATE/DELETE
> implement RETURNING statement, so extending by ORDER and LIMIT would be
> really useful.

> All that with just one query. In this specific example, the ORDER BY
> statement could be even omitted if we don't care how slots are
> distributed between users.


This probably came up in the discussion from back then as well, but what stops you from using a sub-select?

UPDATE slots
  FROM (SELECT id FROM slots WHERE user IS NULL
    ORDER BY id LIMIT 1) AS available
   SET user='joe'
 WHERE id = available.id
 RETURNING *;

Admittedly that's longer and would be slightly less efficient, but it is available now (and has been for a while) and
it'sstill in one query. 

Also:
> CREATE TABLE slots (
>     id INTEGER UNIQUE NOT NULL,
>     user VARCHAR(32),
>     expires TIMESTAMP WITH TIMEZONE,
>     -- some other columns
> );


I'd declare a primary key as what it is, not as some generic UNIQUE NOT NULL column ;) It won't make much difference in
practice,but for example, that way it's intended use is immediately clear from the table definition if people look it
up.

Alban Hertroys

--
If you can't see the forest for the trees,
cut the trees and you'll see there is no forest.


!DSPAM:737,4c9dcfe7678304776795795!



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

Предыдущее
От: Dmitriy Igrishin
Дата:
Сообщение: Re: How to dump only the the data without schema?
Следующее
От: Richard Huxton
Дата:
Сообщение: Re: Index on points