1.创建Sequence,从1开始递增
CREATE SEQUENCE info_id_seq INCREMENT BY 1 MINVALUE 1 MAXVALUE 9223372036854775807 START
WITH 1 NO CYCLE;
2.创建函数,调用Sequenect,传递一个固定值进去,默认以17400000000000000+seq
CREATE OR REPLACE FUNCTION "test"."fn_info_getsequence" (num1 numeric) RETURNS SETOF numeric
VOLATILE
AS $body$
declare
rlt_seq numeric;
begin
if num1=174 then
return query select num1*10000000000000+00000000000000+nextval('info_id_seq');
else
raise exception 'param "num1" is incorrect,please input 174';
end if;
return;
end;
$body$ LANGUAGE plpgsql
3.查看
select nextval('info_id_seq')
select fn_info_getsequence(174)