w999d
@w999d
Web-developer

Postgresql uuid < $1, возможно ли?

Имеется колонка id, типа uuid, нужно получить записи до/после определенного значения (последней записи из предыдущего запроса).

Пример подзапроса с предварительной обрезкой по времени:
SELECT * FROM table WHERE created_at <= $1

Конечно, вероятность при вставке в одну секунду мала, и в этом случае можно было бы использовать простой запрос SELECT * FROM table WHERE created_at < $1 (особенно, если время вставки генерируется самой базой с точностью в секундах порядка 6 знаков после запятой), но при попадании в выборку той же записи могут быть очень нежелательные последствия. Потому хочется сделать дополнительную проверку.

Например, как вариант - функция, фильтрующая ряды, которая бы пропускала ряды до совпадения, затем изменяла состояние внутренней переменной и все ряды после возвращала бы без изменений - с определенным лимитом.
  • Вопрос задан
  • 374 просмотра
Пригласить эксперта
Ответы на вопрос 2
Kwisatz
@Kwisatz
Больше web-приложений, хороших и разных
В чем проблема завести автоинкрементальное поле?
Если не нравится автоинкремент на 1 то берете созданную последовательность и меняете как вам вздумается.
Ответ написан
@Timosha
ак отфильтруйте то что вам не надо явно
SELECT * FROM table WHERE created_at <= $1 and id != $2
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы