將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