Re: insert with select as value

Поиск
Список
Период
Сортировка
От John Sidney-Woollett
Тема Re: insert with select as value
Дата
Msg-id 40D847C1.9050505@wardbrook.com
обсуждение исходный текст
Ответ на insert with select as value  (Milos Prudek <prudek@bvx.cz>)
Список pgsql-general
Try rewriting the inner query as:

SELECT s.* FROM (
SELECT max(idthread)+1 as MX, 'CZE', 'sample text' FROM table WHERE
idsection = 'CZE'
union
SELECT 1 as MX,  'CZE', 'sample text'
)  as s
ORDER BY s.MX desc
LIMIT 1

I think that should work, and always return a row.

John Sidney-Woollett

Milos Prudek wrote:

> I need to insert a value = max(value)+1, where max is a select limited
> by a 'where' clause. Like this:
>
> INSERT INTO table (idthread, idsection,txt)
> VALUES (
>   (SELECT max(idthread)+1 FROM table WHERE  idsection = 'CZE'),
> 'CZE', 'sample text')
> );
>
> This works fine, except when the result of SELECT is empty - which is
> true when the table is empty.
>
> Is it possible to create a "SELECT max(idthread)+1 FROM table WHERE
> idsection = 'CZE';" that will return value 1 instead of value None if
> the SELECT has no results?
>

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

Предыдущее
От: Dennis Gearon
Дата:
Сообщение: Experience with postgres/apache host providers
Следующее
От: Vams
Дата:
Сообщение: Re: psql