当前位置: 首页 > 面试题库 >

如何在Oracle中重置序列?

魏凯捷
2023-03-14
问题内容

在PostgreSQL中,我可以做这样的事情:

ALTER SEQUENCE serial RESTART WITH 0;

是否有Oracle等效产品?


问题答案:

这是一个很好的过程,可以将Oracle专家Tom Kyte的任何序列重置为0 。在下面的链接中也对正反两方面进行了精彩的讨论。

tkyte@TKYTE901.US.ORACLE.COM> 
create or replace
procedure reset_seq( p_seq_name in varchar2 )
is
    l_val number;
begin
    execute immediate
    'select ' || p_seq_name || '.nextval from dual' INTO l_val;

    execute immediate
    'alter sequence ' || p_seq_name || ' increment by -' || l_val || 
                                                          ' minvalue 0';

    execute immediate
    'select ' || p_seq_name || '.nextval from dual' INTO l_val;

    execute immediate
    'alter sequence ' || p_seq_name || ' increment by 1 minvalue 0';
end;
/


 类似资料:
  • 问题内容: 我正在与Spring和Hibernate一起使用Java开发Web应用程序。假设我有一张桌子。当我从该表中删除一些记录时,有时我需要重置主键字段的值。 假设我在一个表中有10条记录,而我删除了最后5条记录。现在,当我插入新记录时,主键字段的值应从开始,但应从开始。 如果需要在MySql 中的()处启动主键值,则只需执行以下SQL语句。 这将自动重置价值,以该字段的值(在概念是不正确的,

  • 问题内容: 就像在问题中一样,如何在Oracle 10g中每年自动将Oracle序列的值重置为0? 我正在使用序列生成格式的标识符,并且每年必须将序列值重置为0。 是从Java获得的,并与Oracle的序列值连接在一起。由于外部第三方的要求,无法更改标识符的格式。感谢您的任何帮助。 问题答案: 序列并不是真正要重置的设计。但是在某些情况下,需要重置序列,例如,在设置测试数据或将生产数据合并回测试环

  • 问题内容: 我怎样才能 重新 在一个领域? 我希望它从头开始计算。 问题答案: 您可以使用以下方法重置计数器: 对于InnoDB,您不能将值设置为小于或等于当前最大索引。(引自ViralPatel): 请注意,您不能将计数器重置为小于或等于已使用的任何值。对于MyISAM,如果该值小于或等于AUTO_INCREMENT列中当前的最大值,则该值将重置为当前的最大值加1。对于InnoDB,如果该值小于

  • 我用登录名和密码启动了主窗口(class)和模式窗口(class)。而主舞台= 如果用户有效,则关闭模式窗口。如何重置主阶段的效果 谢谢主要类别: 公共类主应用程序扩展{ } 登录类: 公共类登录{ }

  • 我在SQL Server中有一个名为的表。t此表有一个名为的列,属性为。 现在我插入了大约175568行作为测试。然后我删除了大约568行,但是当我再次插入数据时,列从175569开始,而不是从175001开始。 请帮我写一下丢失的身份证

  • 我尝试使用以下命令使用sqlplus连接到数据库: 我使用了在创建数据库和设置sys和sysdba密码时设置的相同密码。但它显示了以下错误: ORA-01017:用户名/密码无效;拒绝登录 我已在本地PC上安装了Oracle DB,并使用Windows 10作为操作系统和管理员权限。