自己编写存储过程对Oracle中的序列进行重置

简介:

SQL ServerOracle数据库在设置表的主键的时候有一个很重要的区别,SQL Server可以通过自带的自增数据类型设置一个表的主键,而Oracle则必须借助于数据库中的序列实现自增的数据类型,这两种方式有以下几种区别:

SQL Server

Oracle

自增列隶属于它所在的表对象。

序列和字段分别为不同的数据库对象,它们之间没有直接的联系。

自增列由DB自动管理,无需手动指定值。

通过[序列名称].nextval命令将序列的当前值递增。

每个表只能允许设置一个自增列。

同一个序列可以被多个表使用,但同一时刻序列的当前值只能被应用到一个表中。

     同时 ,它们之间有一个共同的特点,那就是值只能向下递增,不能向上递减。不过,由于Oracle中的序列是独立于表字段而存在的数据库对象,所以,我们可以单独对它进行设置,如将它的当前值递减,或将值设置为初始状态。值得说明的是,在我们重置序列的值之前,需要确定该序列是否正在被数据库中的其它对象使用,否则会导致正在使用该序列的数据库对象的值混乱。

     下面是用于重置Oracle序列的存储过程的代码: 

seq_Reset

       例如你有一个名称为seq_Instance的序列,你可以直接调用该存储过程对这个序列进行重置:

Call seq_Reset( ' seq_Instance ' )
本文转自Jaxu博客园博客,原文链接:http://www.cnblogs.com/jaxu/archive/2009/03/05/1402761.html,如需转载请自行联系原作者

相关文章
|
7月前
|
存储 SQL Oracle
Oracle系列十五:存储过程
Oracle系列十五:存储过程
|
1月前
|
存储 Oracle 关系型数据库
oracle服务器存储过程中调用http
通过配置权限、创建和调用存储过程,您可以在Oracle数据库中使用UTL_HTTP包发起HTTP请求。这使得Oracle存储过程可以与外部HTTP服务进行交互,从而实现更复杂的数据处理和集成。在实际应用中,根据具体需求调整请求类型和错误处理逻辑,以确保系统的稳定性和可靠性。
63 0
|
7月前
|
SQL 存储 Oracle
一篇文章带你学会 Oracle 存储过程的基本介绍和高阶用法(上)
一篇文章带你学会 Oracle 存储过程的基本介绍和高阶用法
|
4月前
|
缓存 Oracle 关系型数据库
[oracle]序列
[oracle]序列
|
5月前
|
Oracle 关系型数据库 Java
mybatis使用statement.getGenreatedKeys(); useGeneratedKeys=”true”;使用自增主键获取主键值策略和Oracle不支持自增,Oracle使用序列
mybatis使用statement.getGenreatedKeys(); useGeneratedKeys=”true”;使用自增主键获取主键值策略和Oracle不支持自增,Oracle使用序列
|
6月前
|
SQL 缓存 Oracle
Oracle中序列Sequence详解
Oracle中序列Sequence详解
|
6月前
|
存储 SQL Oracle
oracle 存储过程导出sql语句 导出为文件
oracle 存储过程导出sql语句 导出为文件
190 0
|
7月前
|
SQL 存储 Oracle
一篇文章带你学会 Oracle 存储过程的基本介绍和高阶用法(下)
一篇文章带你学会 Oracle 存储过程的基本介绍和高阶用法
|
7月前
|
Oracle 关系型数据库 数据管理
Oracle序列:数据世界的“自动售货机”
【4月更文挑战第19天】Oracle序列是数据库中生成唯一数值的关键工具,比喻为数据世界的“自动售货机”。它提供有序、唯一的序列号,适用于需要唯一标识符的场景,如订单号和员工编号。通过设定起始值、增量和最大值,序列能自动化产生新号码,提高效率并减少错误。然而,使用时需注意设置恰当的属性以适应业务需求,并解决并发访问时的冲突问题。熟练掌握序列使用对数据管理至关重要。
|
7月前
|
缓存 Oracle 关系型数据库
Oracle中的触发器与序列:自增列的魔法组合
【4月更文挑战第19天】Oracle数据库中,通过触发器和序列的组合可实现自增列功能。序列充当自动计数器,提供递增数值,而触发器则在插入新记录时自动分配序列值。创建序列如`CREATE SEQUENCE emp_seq START WITH 1 INCREMENT BY 1 NOCACHE`,然后创建触发器`TRIGGER trg_employees_before_insert`在`BEFORE INSERT`时将序列的下一个值赋予`employee_id`。这种方式使得在插入记录时无需手动设置ID,提高了效率。但使用时需注意序列状态、并发性和性能优化。

推荐镜像

更多
下一篇
DataWorks