在开始讲解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序列和触发器的建立 #### 序列(Sequence) 在Oracle数据库中,序列是一种自动产生数值的对象,常用于为主键字段提供唯一值。序列主要用于实现表中的自增ID功能,例如,当用户需要为某张表的主键设置自...
### Oracle删除所有表、视图、序列、函数、存储过程等SQL知识点详解 #### 一、概述 在Oracle数据库管理中,有时会遇到需要彻底清除某个模式下的所有对象的情况,如表、视图、序列、函数、存储过程或包等。这种需求...
该实验主要包括表结构的建立、修改、查看、删除操作,索引的建立、修改、查看、删除操作,视图的建立、查询、修改、删除操作,同义词的建立、查询、修改、删除操作,以及序列的建立、查询、修改、删除操作。...
4. **调度任务**:使用Oracle的DBMS_SCHEDULER或者以前的DBMS_JOB来定期运行这个脚本,确保每年或每月自动创建新分区。 5. **测试与验证**:确保脚本正确运行,新插入的数据自动进入正确的分区。 为了充分利用分区...
这一章将详细阐述如何在Oracle Developer中创建、修改和删除这些对象。同时,你还将学习到如何使用数据字典视图来查看和分析数据库结构。 除了基本的数据库对象,本章还将讨论Oracle Developer在处理数据库对象时的...
9. Oracle序列和触发器: - 序列(SEQUENCE):一种特殊的数据对象,用于生成序列数字,常用于主键生成。 - 触发器(TRIGGER):一种数据库对象,当特定的数据库事件发生时自动执行。 10. 数据库环境配置: - ...
5. **表和数据类型**:详解Oracle中的数据对象,如表的创建、索引、视图、序列等,以及各种内置数据类型的理解和使用。 6. **数据库安全**:讲述用户管理、权限和角色的分配,如何确保数据库的安全性和数据访问控制...
### 完整Oracle创建表空间、用户及设置用户权限脚本解析 #### 一、创建表空间 在Oracle数据库管理中,创建表空间是数据库管理的基础之一。表空间是Oracle数据库中逻辑存储结构的一部分,它将数据库物理存储空间...
首先,A.1部分介绍了如何删除表、序列和类型,这是清理数据库并准备重新开始或建立新示例数据库的步骤。这些命令将删除所有数据,确保数据库处于初始状态。在实际操作中,这一步骤通常在数据库更新或测试环境中执行...
通过使用Oracle .NET驱动程序,可以轻松地在.NET应用程序中建立与Oracle数据库的连接。 #### 抽象工厂中加入Oracle 在.NET框架中,可以通过抽象工厂模式来统一不同数据库类型的访问接口,提高代码的可重用性和可...
- 创建数据库连接:使用`DriverManager.getConnection()`方法建立到Oracle数据库的连接。 - 执行SQL语句:通过`Statement`或`PreparedStatement`对象执行SQL查询、插入、更新和删除操作。 - 处理结果集:对于查询...
综上所述,《Oracle 9i 数据库管理员指南》是一部内容丰富、实用性强的专业书籍,不仅适合Oracle数据库管理员使用,对于其他相关人员如安全维护员、网络管理员以及数据库应用开发者也有很高的参考价值。
3. **SQL通配符查询**:使用`LIKE`操作符可以在搜索列中的文本数据时使用通配符进行比较,例如 `%` 和 `_`。 4. **资源释放**:如果服务器进程意外终止,Oracle的`PMON`(进程监控器)后台进程会负责释放其占用的...
在 Oracle 中,可以使用 `DBMS_JOB` 包来提交和管理定时任务。以下是如何创建一个定时任务的例子: 1. **使用 `DBMS_JOB.SUBMIT` 方法**:这个方法允许你定义定时任务的基本属性,包括执行的存储过程、下一次执行的...
序列的使用方法是通过`NEXTVAL`获取下一个值,通过`CURRVAL`获取当前值。 #### 5.4 同义词 同义词是数据库对象的别名,简化了对象的访问方式。创建同义词的SQL语法如下: ```sql CREATE SYNONYM 同义词名 FOR 对象...
### Oracle系统表大全知识点解析 #### 一、Oracle系统表概览 Oracle系统表是用于管理数据库元数据的重要工具,通常归Oracle用户`SYS`所有。这些系统表提供了关于数据库结构、配置和状态的关键信息,对于数据库管理...