在开始讲解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,
……)
原帖地址:http://www.cnblogs.com/WangPB/archive/2010/07/13/1776766.html
分享到:
相关推荐
在Oracle数据库中,序列(Sequence)是一种特殊的数据对象,它能自动地生成唯一的整数,通常用于为主键字段提供连续的...通过创建、修改和删除序列,我们可以灵活地管理这些自增的唯一标识符,确保数据库的稳定运行。
在MySQL数据库中创建学生表是数据库管理的基本操作之一,它涉及到数据结构的设计、SQL语句的编写以及数据库规范的理解。本篇文章将详细讲解如何在MySQL环境中创建一个名为“学生”的数据表,包括所需字段的定义、...
本文将详细介绍Oracle数据库中序列的创建、修改以及删除方法,并通过一个具体的示例来演示序列的使用。 #### 序列的基本概念 序列是一种能够按需生成连续整数的数据库对象。它可以用于自动填充某些字段,特别是当...
综上所述,Oracle数据库中的序列提供了一种方便、高效的方式来生成唯一整数,常用于创建主键或唯一标识符。通过灵活的创建、修改和删除命令,开发者可以根据需求调整序列的属性,以满足不同的业务场景。
添加触发器(Trigger)是指在数据库表上添加一个触发器,以便在特定的操作(如插入、更新、删除)时执行特定的操作。在上面的示例代码中,添加了一个触发器 `Trigger_Car_GUID_Insert`,用于在插入数据到表 `Car` 时...
本文将详细介绍如何在Oracle数据库中进行序列的基本操作,包括创建、查询当前值与下一个值、以及删除序列等内容。 #### 一、创建序列(Create Sequence) 创建序列是使用`CREATE SEQUENCE`语句来完成的。在Oracle...
### Oracle 使用序列创建自增字段 在数据库设计与开发中,自增字段是十分常见的需求之一,尤其是在需要为每一行记录自动分配一个唯一编号的情况下。Oracle 数据库通过序列(Sequence)这一特性支持自增字段的实现。...
在数据迁移完成后,需要重新创建在第三步中被临时删除的键、约束和索引,以恢复数据库的完整性和一致性。 七、表授权 迁移过程中必须考虑到权限和访问控制。在DM8中为新用户分配相应的对象权限,确保迁移后的功能与...
在本教程中,我们将深入探讨Access数据库的创建和操作,这是学习数据库管理的重要步骤。Access是Microsoft Office套件的一部分,它提供了一个用户友好的界面来创建、管理和维护数据库。 1. Access数据库的基本概念...
创建序列后,还需要创建一个触发器,以便在插入新记录时自动填充该序列的值。触发器定义如下: ```sql CREATE OR REPLACE TRIGGER Trigger_User BEFORE INSERT ON T_USER_INFO FOR EACH ROW WHEN (NEW.ID IS NULL) ...
本篇详细介绍了如何在Oracle数据库中创建一张包含自动增长主键的表`tuser`,并通过创建序列和触发器实现了这一功能。这种做法不仅能够简化主键管理的工作量,还能够确保数据的一致性和完整性。对于实际应用来说,这...
表管理是数据库管理中最为频繁的操作,包括创建、修改、删除表以及清空表内容等。视图管理是创建和查看视图信息。序列管理涉及创建序列并管理其属性。索引管理涉及创建、修改、删除索引以及查看索引信息。约束管理...
5. **消息映射的动态构建**:创建动态的消息映射系统,允许在运行时添加、删除或修改消息处理函数。 通过这样的设计,开发者可以在不了解底层实现的情况下,根据类的元数据动态地操作对象,提高了代码的灵活性和可...
本文将详细介绍如何在Oracle数据库中创建序列、修改序列以及删除序列。 #### 一、创建序列(Create Sequence) 创建序列的基本语法如下: ```sql CREATE SEQUENCE sequence_name INCREMENT BY increment MINVALUE ...
在Oracle数据库管理中,索引序列的创建是优化查询性能、确保数据完整性的关键操作之一。根据提供的文件信息,我们将深入探讨与“索引序列的创建”相关的几个核心知识点,包括用户管理、表结构设计、索引创建及管理、...
Oracle数据库的SQL开发教程涵盖了广泛的主题,其中包括序列、索引和同义词这些重要的数据库对象。在本章中,我们将深入探讨这些概念及其在数据库管理中的应用。 **序列(SEQUENCE)**是Oracle数据库中用于生成唯一...
在安卓平台上开发应用程序时,与数据库的交互是常见的需求,比如创建一个记事本应用,就需要存储和检索用户的笔记。本项目"安卓连接数据库项目"就是这样一个实例,它展示了如何在Android环境中建立数据库连接,进行...
在SQL Server中,使用`CREATE DATABASE`创建一个新的数据库,如果已经存在同名数据库,可先用`DROP DATABASE`删除。创建数据库示例: ```sql IF EXISTS (SELECT * FROM sysdatabases WHERE name='databaseName') ...
### SQL Server 中创建类似 Oracle 序列的存储过程 #### 背景介绍 在数据库管理系统(DBMS)中,序列是一种自增的数据结构,常用于自动产生唯一标识符(如ID)。Oracle 数据库提供了非常方便的序列机制,而 SQL ...