postgresql序列函数查询 以及序列相关操作

本文详细介绍了PostgreSQL中序列的创建、查询、重置及模糊查询等操作,通过具体SQL语句展示了如何管理序列,包括解决主键冲突问题的自定义函数实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

序列相关操作(postgresql)

序列创建

create sequence public.test_sequece
  increment by 1
  minvalue 10000000
  maxvalue 9999999999
  start with 10000000
  cache 1;

序列查询

currval of sequence “test_sequence” is not yet defined in this session
查阅参考资料,发现错误原因是要查当前值,必须先取一次next:执行以下语句,执行成功:
select nextval(‘test_sequence’);
select currval(‘test_sequence’)

序列值增长至指定值(用于解决主键冲突问题)

--创建函数
CREATE OR REPLACE FUNCTION public.sequence_reset()
  RETURNS void  AS
$BODY$
DECLARE
   indexnum int ;
 begin
   for ind in 1..2 loop 
   select nextval('test_sequence') into indexnum;
    end loop ;
 end;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;
ALTER FUNCTION public.sequence_reset()
  OWNER TO testdata;

--执行函数
select  sequence_reset();
--删除函数(执行完自定义函数后一般给他删除掉,不影响其他值)
drop function  public.sequence_reset();

模糊查询自定义函数



--查看自定义的函数信息

SELECT
  pg_proc.proname AS "函数名称",
  pg_type.typname AS "返回值数据类型",
  pg_proc.pronargs AS "参数个数"
FROM
  pg_proc
    JOIN pg_type
   ON (pg_proc.prorettype = pg_type.oid)
WHERE
--   pg_type.typname != 'void'
    pg_proc.proname like '%sequence_reset%'

查询数据库中有哪些序列


--查看数据库中有哪些序列
--r =普通表, i =索引,S =序列,v =视图,m =物化视图, c =复合类型,t = TOAST表,f =外部表
select *  from pg_class where relkind='S'  

```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值