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 по дате отправления: