RE: [pgsql-ru-general] Вопрос по нумерации
От | Владимир Комаров |
---|---|
Тема | RE: [pgsql-ru-general] Вопрос по нумерации |
Дата | |
Msg-id | 001001d0e0f2$1382efc0$3a88cf40$@sibnet.ru обсуждение исходный текст |
Ответ на | Вопрос по нумерации (Владимир Комаров <vlads@sibnet.ru>) |
Список | pgsql-ru-general |
Разобрался сам:
Оказалось проще простого:
SELECT max(x)+1 INTO n
SELECT xx INTO res FROM generate_series(2,n) xx
WHERE xx NOT IN (SELECT x FROM tbl) LIMIT 1
From: Владимир Комаров [mailto:vlads@sibnet.ru]
Sent: Thursday, August 27, 2015 11:17 PM
To: 'Alexey Vasiliev' <leopard_ne@inbox.ru>
Subject: RE: [pgsql-ru-general] Вопрос по нумерации
Спасибо, но этот вариант я знаю:
Сделать строку str:=1,2,3,4…n
Где SELECT max(x)+1 INTO n
А ПОТОМ нечто подобное:
SELECT xx INTO res from (SELECT regexp_split_to_table(str) xx) WHERE xx NOT IN (SELECT x FROM tbl) LIMIT 1
Но хотелось более элегантный способ формирования таблицы str или (regexp_split_to_table(str))
From: Alexey Vasiliev [mailto:leopard_ne@inbox.ru]
Sent: Thursday, August 27, 2015 10:42 PM
To: Владимир Комаров <vlads@sibnet.ru>
Cc: pgsql-ru-general@postgresql.org
Subject: Re: [pgsql-ru-general] Вопрос по нумерации
На алгоритмах есть такое:
http://algolist.manual.ru/olimp/poi_sol.php#a10
Thursday, 27 August 2015, 06:26PM +03:00 from Владимир Комаров <vlads@sibnet.ru>:
Есть таблица. Есть столбец Х .
Необходимо внести строку так, чтобы номер, попадаемый в Х был минимальным уникальным.
Например, есть строки: 1,2,3,4,6,7,9
Значит новая строка должна быть с номером 5
Как это сделать максимально быстро?
В списке pgsql-ru-general по дате отправления: