PostgreSQL | Как получить следующее значение существующего идентификатора? — efim360.ru

PostgreSQL | Как получить следующее значение существующего идентификатора?

Пример 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-оболочки pgAdminhttps://www.pgadmin.org

Официальный сайт СУБД PostgreSQLhttps://www.postgresql.org

Команды SQLhttps://postgrespro.ru/docs/postgresql/15/sql-commands

Команда CREATE FUNCTIONhttps://postgrespro.ru/docs/postgresql/15/sql-createfunction

Команда CREATE SEQUENCEhttps://postgrespro.ru/docs/postgresql/15/sql-createsequence

Информация для оптимизации функций — https://postgrespro.ru/docs/postgresql/15/xfunc-optimization

Категории изменчивости функций — https://postgrespro.ru/docs/postgresql/15/xfunc-volatility