`

Oracle序列使用:建立、删除(转)

 
阅读更多

在开始讲解Oracle序列使用方法之前,先加一点关于Oracle client sqlplus的使用,就是如果执行多行语句的话一定要加“/”才能表示结束,并执行!本篇文章的主题是通过创建Oracle序列和触发器实现表的主键自增。

1.首先创建序列,Oracle序列的语法格式为:
CREATE SEQUENCE 序列名
[INCREMENT BY n]
[START WITH n]
[{MAXVALUE/ MINVALUE n|NOMAXVALUE}]
[{CYCLE|NOCYCLE}]
[{CACHE n|NOCACHE}];

1)INCREMENT BY用于定义序列的步长,如果省略,则默认为1,如果出现负值,则代表Oracle序列的值是按照此步长递减的。

2)START WITH 定义序列的初始值(即产生的第一个值),默认为1。

3)MAXVALUE 定义序列生成器能产生的最大值。选项NOMAXVALUE是默认选项,代表没有最大值定义,这时对于递增Oracle序列,系统能够产生的最大值是10的27次方;对于递减序列,最大值是-1。

4)MINVALUE定义序列生成器能产生的最小值。选项NOMAXVALUE是默认选项,代表没有最小值定义,这时对于递减序列,系统能够产生的最小值是?10的26次方;对于递增序列,最小值是1。

5)CYCLE 和NOCYCLE 表示当序列生成器的值达到限制值后是否循环。CYCLE代表循环,NOCYCLE代表不循环。如果循环,则当递增序列达到最大值时,循环到最小值;对于递 减序列达到最小值时,循环到最大值。如果不循环,达到限制值后,继续产生新值就会发生错误。

6)CACHE(缓冲)定义存放序列的内存块的大小,默认为20。NOCACHE表示不对序列进行内存缓冲。对序列进行内存缓冲,可以改善序列的性能。

2.删除Oracle序列的语法是DROP SEQUENCE 序列名;

假设有表TEST,其主键为TEST_ID
1)建立递增序列SEQ_TEST:
create sequence SEQ_TEST
increment by 1
start with 1
minvalue 1 nomaxvalue
nocylce

2)建立触发器,当有数据插入表TEST时,使用Oracle序列为其去的递增的主键值
create trigger TRG_TEST before insert on TEST
for each row
begin
select SEQ_TEST.nextval into :new.TEST_ID from dual;
end;

至此,创建完成!

当然也可以不使用触发器,而是在插入时在sql语句中调用序列,例如
insert into TEST values(SEQ_TEST.nextval, ……)

分享到:
评论

相关推荐

    oracle序列和触发器的建立

    ### Oracle序列和触发器的建立 #### 序列(Sequence) 在Oracle数据库中,序列是一种自动产生数值的对象,常用于为主键字段提供唯一值。序列主要用于实现表中的自增ID功能,例如,当用户需要为某张表的主键设置自...

    Oracle实验三.doc

    该实验主要包括表结构的建立、修改、查看、删除操作,索引的建立、修改、查看、删除操作,视图的建立、查询、修改、删除操作,同义词的建立、查询、修改、删除操作,以及序列的建立、查询、修改、删除操作。...

    oracle自动一年建立表分区.zip

    4. **调度任务**:使用Oracle的DBMS_SCHEDULER或者以前的DBMS_JOB来定期运行这个脚本,确保每年或每月自动创建新分区。 5. **测试与验证**:确保脚本正确运行,新插入的数据自动进入正确的分区。 为了充分利用分区...

    李兴华oracle经典笔记

    9. Oracle序列和触发器: - 序列(SEQUENCE):一种特殊的数据对象,用于生成序列数字,常用于主键生成。 - 触发器(TRIGGER):一种数据库对象,当特定的数据库事件发生时自动执行。 10. 数据库环境配置: - ...

    Oracle 删除所有表,视图,序列,函数,存储过程等SQL

    ### Oracle删除所有表、视图、序列、函数、存储过程等SQL知识点详解 #### 一、概述 在Oracle数据库管理中,有时会遇到需要彻底清除某个模式下的所有对象的情况,如表、视图、序列、函数、存储过程或包等。这种需求...

    oracle developer使用指南

    这一章将详细阐述如何在Oracle Developer中创建、修改和删除这些对象。同时,你还将学习到如何使用数据字典视图来查看和分析数据库结构。 除了基本的数据库对象,本章还将讨论Oracle Developer在处理数据库对象时的...

    完整ORACLE创建表空间、用户、设置用户权限脚本

    ### 完整Oracle创建表空间、用户及设置用户权限脚本解析 #### 一、创建表空间 在Oracle数据库管理中,创建表空间是数据库管理的基础之一。表空间是Oracle数据库中逻辑存储结构的一部分,它将数据库物理存储空间...

    Oracle入门教程-28本全套

    5. **表和数据类型**:详解Oracle中的数据对象,如表的创建、索引、视图、序列等,以及各种内置数据类型的理解和使用。 6. **数据库安全**:讲述用户管理、权限和角色的分配,如何确保数据库的安全性和数据访问控制...

    Oracle经典教程1——走进Oracle

    通过使用Oracle .NET驱动程序,可以轻松地在.NET应用程序中建立与Oracle数据库的连接。 #### 抽象工厂中加入Oracle 在.NET框架中,可以通过抽象工厂模式来统一不同数据库类型的访问接口,提高代码的可重用性和可...

    Oracle Developer:第17章 附录A.pdf

    首先,A.1部分介绍了如何删除表、序列和类型,这是清理数据库并准备重新开始或建立新示例数据库的步骤。这些命令将删除所有数据,确保数据库处于初始状态。在实际操作中,这一步骤通常在数据库更新或测试环境中执行...

    Oracle JDBC API

    - 创建数据库连接:使用`DriverManager.getConnection()`方法建立到Oracle数据库的连接。 - 执行SQL语句:通过`Statement`或`PreparedStatement`对象执行SQL查询、插入、更新和删除操作。 - 处理结果集:对于查询...

    Oracle 9i BDA.pdf

    综上所述,《Oracle 9i 数据库管理员指南》是一部内容丰富、实用性强的专业书籍,不仅适合Oracle数据库管理员使用,对于其他相关人员如安全维护员、网络管理员以及数据库应用开发者也有很高的参考价值。

    Oracle 创建 job 实例

    在 Oracle 中,可以使用 `DBMS_JOB` 包来提交和管理定时任务。以下是如何创建一个定时任务的例子: 1. **使用 `DBMS_JOB.SUBMIT` 方法**:这个方法允许你定义定时任务的基本属性,包括执行的存储过程、下一次执行的...

    oracle 系统表大全

    ### Oracle系统表大全知识点解析 #### 一、Oracle系统表概览 Oracle系统表是用于管理数据库元数据的重要工具,通常归Oracle用户`SYS`所有。这些系统表提供了关于数据库结构、配置和状态的关键信息,对于数据库管理...

    oracle数据库练习A

    3. **SQL通配符查询**:使用`LIKE`操作符可以在搜索列中的文本数据时使用通配符进行比较,例如 `%` 和 `_`。 4. **资源释放**:如果服务器进程意外终止,Oracle的`PMON`(进程监控器)后台进程会负责释放其占用的...

    超详细ORACLE培训带实例带书签目录

    ### 超详细ORACLE培训知识点总结 #### 引言 本培训材料旨在全面介绍Oracle数据库的相关知识...通过系统地学习这些章节,读者可以建立起对Oracle数据库系统的全面认识,并能够灵活运用所学知识解决实际工作中的问题。

Global site tag (gtag.js) - Google Analytics