Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / PostgreSQL Новый топик    Ответить
 Продолжительность действия функции ROW_NUMBER  [new]
vadval15
Member

Откуда:
Сообщений: 33
Действительно ли время существования результата выполнения функции ROW_NUMBER ограничено соответствующим SQL-запросом и его никак нельзя продлить? Буду признателен за любой ответ по данному вопросу.
1 авг 20, 17:38    [22176556]     Ответить | Цитировать Сообщить модератору
 Re: Продолжительность действия функции ROW_NUMBER  [new]
Maxim Boguk
Member

Откуда: Melbourne, Австралия
Сообщений: 4230
vadval15
Действительно ли время существования результата выполнения функции ROW_NUMBER ограничено соответствующим SQL-запросом и его никак нельзя продлить? Буду признателен за любой ответ по данному вопросу.


вопрос в принципе не понятен...
1 авг 20, 19:18    [22176578]     Ответить | Цитировать Сообщить модератору
 Re: Продолжительность действия функции ROW_NUMBER  [new]
grgdvo
Member

Откуда:
Сообщений: 104
vadval15,

можно попробовать последовательность прикрутить вместо row_number

begin;
create sequence xyz;
select currval('xyz'), nextval('xyz'), md5(currval('xyz')::text) from generate_series(1,5);
select currval('xyz'), nextval('xyz'), md5(currval('xyz')::text) from generate_series(1,5);
rollback;
2 авг 20, 00:27    [22176621]     Ответить | Цитировать Сообщить модератору
 Re: Продолжительность действия функции ROW_NUMBER  [new]
vadval15
Member

Откуда:
Сообщений: 33
Спасибо за ответы. Например, простейшая таблица создана следующей командой:
CREATE TABLE test (numr serial primary key, cat integer, name varchar(20), balls integer);

После вызова функции ROW_NUMBER вида:
SELECT *, ROW_NUMBER() OVER (ORDER BY balls) AS numi FROM test;

в конце таблицы появляется дополнительное поле numi с номерами записей в порядке заданной сортировки. При вводе очередного запроса:
SELECT * FROM test;

появившееся поле бесследно исчезает. Означает ли это, что указанный результат в порядке вещей и для получения стабильной перенумерации записей необходимо использовать другие средства, вроде:
ALTER TABLE test ADD numi serial;
2 авг 20, 01:53    [22176626]     Ответить | Цитировать Сообщить модератору
 Re: Продолжительность действия функции ROW_NUMBER  [new]
Maxim Boguk
Member

Откуда: Melbourne, Австралия
Сообщений: 4230
vadval15


появившееся поле бесследно исчезает. Означает ли это, что указанный результат в порядке вещей и для получения стабильной перенумерации записей необходимо использовать другие средства, вроде:
ALTER TABLE test ADD numi serial;


да
2 авг 20, 09:51    [22176643]     Ответить | Цитировать Сообщить модератору
 Re: Продолжительность действия функции ROW_NUMBER  [new]
Maxim Boguk
Member

Откуда: Melbourne, Австралия
Сообщений: 4230
vadval15,

я бы еще бы посоветовал заранее подумать какое поведение нумерации вам надо если у какой то записи значение balls будет изменено...
сохранение нумерации с нарушением порядка по balls?
сохранение порядка по balls с изменением номеров (вполне может быть всем почти срокам)?

вообще очень странный вопрос и странная задача... может вы подробно объясните что именно вы хотите не от базы в чем задача состоит?
2 авг 20, 12:25    [22176661]     Ответить | Цитировать Сообщить модератору
 Re: Продолжительность действия функции ROW_NUMBER  [new]
vadval15
Member

Откуда:
Сообщений: 33
Спасибо за ответы, они меня вполне удовлетворили. По-моему, это довольно распространённая задача поиска оптимального способа периодической программной манипуляции с записями при вхождении в систему. Их количество и содержание может время от времени варьироваться, а обрабатываться они должны в определённой последовательности.
2 авг 20, 12:45    [22176666]     Ответить | Цитировать Сообщить модератору
Все форумы / PostgreSQL Ответить