Пример SQL-запроса, который вернёт следующую актуальную запись для идентификатора 4000000:
SELECT id FROM t_scheme.t_name WHERE id > 4000000 ORDER BY id ASC LIMIT 1; или SELECT * FROM t_scheme.t_name WHERE id > 4000000 ORDER BY id ASC LIMIT 1;
Логика подробно описана в похожей по смыслу публикации — PostgreSQL | Как получить предыдущее значение существующего идентификатора?
Здесь у нас схема данных называется «t_scheme«, а таблица называется «t_name «.
Функция для получения следующего существующего значения целочисленного идентификатора по заданному значению
CREATE OR REPLACE FUNCTION a.get_next_id_from_t_d(x_id bigint) RETURNS bigint LANGUAGE 'plpgsql' COST 100 IMMUTABLE PARALLEL UNSAFE AS $BODY$ DECLARE -- DROP FUNCTION a.get_prev_id_from_t_d(x_id bigint); BEGIN RETURN (SELECT id FROM a.t_d WHERE id > x_id ORDER BY id ASC LIMIT 1); END; $BODY$;
Информационные ссылки
Официальный сайт WEB-оболочки pgAdmin — https://www.pgadmin.org
Официальный сайт СУБД PostgreSQL — https://www.postgresql.org
Команды SQL — https://postgrespro.ru/docs/postgresql/15/sql-commands
Команда CREATE FUNCTION — https://postgrespro.ru/docs/postgresql/15/sql-createfunction
Команда CREATE SEQUENCE — https://postgrespro.ru/docs/postgresql/15/sql-createsequence
Информация для оптимизации функций — https://postgrespro.ru/docs/postgresql/15/xfunc-optimization
Категории изменчивости функций — https://postgrespro.ru/docs/postgresql/15/xfunc-volatility