`

oracle 重置序列

 
阅读更多

Oracle中一般将自增sequence重置为初始1时,都是删除再重建,这种方式有很多弊端,依赖它的函数和存储过程将失效,需要重新编译。

不过还有种巧妙的方式,不用删除,利用步长参数,先查出sequence的nextval,记住,把递增改为负的这个值(反过来走),然后再改回来。

假设需要修改的序列名:seq_name

1、select seq_name.nextval from dual; //假设得到结果5656

2、 alter sequence seq_name increment by -5655; //注意是-(n-1)

3、 select seq_name.nextval from dual;//再查一遍,走一下,重置为1了

4、  alter sequence seq_name increment by 1;//还原

分享到:
评论

相关推荐

    oracle 重置序列从指定数字开始的方法详解

    在某些情况下,可能需要重置序列,使其从特定数字开始,而不是默认的序列生成值。以下是一些关于如何重置Oracle序列从指定数字开始的方法。 1. **不删除重建方式** 在不删除重建序列的情况下,可以使用PL/SQL动态...

    oracle 不用新建序列 重置序列(从1开始增长)

    在Oracle中,通常的做法是创建一个新的序列,但这可能会带来额外的管理工作,尤其是在频繁需要重置序列的场景下。 本文将详细介绍如何在不新建序列的情况下,实现Oracle序列的重置,让其从1开始增长。这种方法通过...

    Oracle sequence 重置(失效恢复)

    **Oracle Sequence** 是一种数据库对象,用于生成连续的整数序列。它可以被用来作为表中某一列的自动增长字段,例如主键ID。Sequence的主要优点是简单易用且性能高效。 #### 二、Sequence失效的原因 1. **数据迁移...

    mysql生成oracle序列

    4. **序列重置逻辑**:在`nextval`函数中,使用了`pow(10, tmp1)`来判断是否达到最大值并重置序列值。这里假设`valuelen`代表序列值的最大位数,但实际应用中可能需要根据具体需求调整逻辑。 通过以上方法,可以在...

    批量修改Oracle序列值的存储过程

    批量修改序列值通常涉及到ALTER SEQUENCE语句,例如将序列重置为特定值: ```sql ALTER SEQUENCE seq_name RESTART WITH new_value; ``` 但是,如果你有大量的序列需要修改,逐个执行ALTER语句会非常繁琐。这时,...

    oracle序列创建、修改、删除

    - 如果序列设置为`CYCLE`,当达到最大值后会重置到最小值继续,否则会抛出错误。 在实际开发中,正确理解和使用序列可以避免数据一致性问题,提高数据库操作效率。通过创建、修改和删除序列,我们可以灵活地管理...

    Oracle判断指定列是否全部为数字的sql语句

    代码如下: select nvl2(translate(name,’\1234567890 ‘, ‘\... 您可能感兴趣的文章:oracle 重置序列从指定数字开始的方法详解ORACLE数据库中怎么求除数字、字母之外的非中文字符的正则表达式Oracle中判断字段是否为

    重置在线重做日志(迁移)

    这条命令将会创建一个控制文件的备份,并且重置日志文件序列,这意味着所有的日志文件都会被标记为新的序列号。 #### 3. 总结 本指南详细介绍了如何在Oracle数据库中迁移重做日志文件。通过按照上述步骤操作,可以...

    sqlserver中创建类似oracle序列的存储过程

    ### SQL Server 中创建类似 Oracle 序列的存储过程 #### 背景介绍 在数据库管理系统(DBMS)中,序列是一种自增的数据结构,常用于自动产生唯一标识符(如ID)。Oracle 数据库提供了非常方便的序列机制,而 SQL ...

    ORACLE 数据对象的分析2(索引_序列_同义词)

    - **可重置**:可以通过特定命令重置序列的当前值。 #### 三、同义词(SYNONYM) **同义词**是在数据库中创建的一个对象,它作为另一个对象(通常是表或视图)的别名。 - **定义**:同义词是一个替代名称,可以...

    oracle中设置自增主键参考

    - `NOCYCLE`:当序列达到最大或最小值后不会循环重置。 - `NOCACHE`:禁用缓存机制,每次获取序列值时都直接从数据库中获取。 #### 触发器实现自动填充 为了使主键字段能够自动填充,我们需要创建一个触发器。这个...

    oracle触发器实现主键自动增长

    1. **序列的重置与循环**:如果希望序列值可以循环使用,可以通过设置`CYCLE`选项。如果希望序列值在达到最大值后不再增长,应设置`NOCYCLE`选项。 2. **并发控制**:在高并发环境中,多个用户可能同时尝试获取序列...

    分享ORACLE SEQUENCE跳号总结

    - **序列重置**:如果允许,可以通过`ALTER SEQUENCE RESTART`命令重置序列,但这可能会导致与现有数据冲突。 - **事务管理**:确保事务在提交前不回滚,或者在事务中捕获和处理序列值,以减少跳号的可能性。 - **...

    oracle10g课堂练习I(1)

    解除用户帐户的锁定并重置口令 6-9 权限 6-10 系统权限 6-11 对象权限 6-13 使用 ADMIN OPTION 撤销系统权限 6-14 使用 GRANT OPTION 撤销对象权限 6-15 角色的作用 6-16 将权限分配给角色以及将角色分配给...

    《Oracle 技巧》

    - 如果发现序列值有误或需要重置,可以使用`ALTER SEQUENCE`命令进行调整,如`ALTER SEQUENCE my_sequence RESTART WITH 1;` - 对于触发器,可以通过`DROP TRIGGER`命令删除不再需要的触发器。 - 定期检查序列和...

    oracle笔试

    总的来说,Oracle笔试涵盖了数据库逻辑和物理结构、安全性、网络配置、数据库实例状态管理、表空间操作、用户和角色管理、序列、PL/SQL以及触发器等多个方面,备考者需要全面理解和熟练掌握这些知识点,以便在实际...

    oracle sequence语句重置方介绍

    在开发过程中,我们有时需要重置Oracle Sequence,使其从特定值开始重新计数,比如从1开始。以下将详细介绍两种重置Oracle Sequence的方法。 方法一: ```sql DECLARE n NUMBER(10); tsql VARCHAR2(100); p_...

    删除ORACLE某个用户下所有数据

    这可能是因为项目结束、测试环境重置或是其他原因导致的。为了完成这一任务,我们可以通过一系列SQL命令来实现对特定用户下各种类型对象(如表、视图、序列、函数、过程和包)的删除。 ### 一、删除表 表是数据库...

    oracle数据库的赋权脚本

    - **ALTER ANY SEQUENCE**:允许用户修改任何序列,包括重置序列值。 - **ALTER ANY USER**:允许用户修改任何用户的属性,如密码、资源限制等。 - **ALTER ANY RULE**:允许用户修改任何规则,这是Oracle 12c引入的...

Global site tag (gtag.js) - Google Analytics