批量生成序列重置SQL

Posted 特立独行

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了批量生成序列重置SQL相关的知识,希望对你有一定的参考价值。

产品迭代,同用一个库,或者迁移后仅清理数据,导致序列几十亿,可能会有一些影响,因此重置,如果生产沿用一些东西,谨慎操作。

-- 执行命令生成结果
SELECT \'alter sequence \' || SEQUENCE_OWNER || \'.\' || SEQUENCE_NAME ||\' increment by \' || (SQ.MIN_VALUE - SQ.LAST_NUMBER + 500) || \';\'||chr(10)||
       \'select \' || SEQUENCE_OWNER || \'.\' || SEQUENCE_NAME ||\'.nextval from dual;\' ||chr(10)||
       \'alter sequence \' || SEQUENCE_OWNER || \'.\' || SEQUENCE_NAME ||\' increment by \' || SQ.INCREMENT_BY || \';\' cmd
  FROM DBA_SEQUENCES SQ
 WHERE SEQUENCE_OWNER = \'&USERNAME\'
   AND SQ.LAST_NUMBER > 10000;
-- 替换变量USERNAME为你数据库用户

以上是关于批量生成序列重置SQL的主要内容,如果未能解决你的问题,请参考以下文章

Oracle索引批量重置笔记

重置自动递增序列 pl-sql

求助,oracle的序列号能不能一次获取到多个

在 SQL Server 中的一段时间结束后重置序列号

Mybaits的批量操作包括批量删除 批量增加和批量更新

vim神奇高效功能--批量生成Sql实例