将pgsql中的所有表的序列当前值设置为所需的值


pg的存储过程的创建如下所示:

create or replace function "public"."update_sequence"("v" int4)
returns void as
$$
   declare
   seq_record record;
   begin
        for seq_record in (select relname from pg_class where relkind='S') loop
             execute 'alter sequence ' || seq_record.relname || ' restart with ' || v || ';';
         end loop;     
    end;         
$$
language plpgsql volatile
cost 100;

存储过程中 执行sql语句,要加execute

mybatis的mapper.xml文件中调用pg的存储过程如下:

<select id="xxx方法名">
      select update_sequence(#{number})
</select>

注意:mybatis调用存储过程的入参类型要和pg中创建的存储过程的入参类型一致,不要会找不到对应的存储类型

mybatis 中执行pg的存储过程 用select  ; 执行mysql的存储过程 用call

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM