序列的概念和使用
点评:主键尽量使用序列发生!rac的情况考虑 order属性!
该实验的目的是操作序列,使用序列进行插入操作。
Sequence 序列
序列是一类对象
它可以自动的产生唯一的整数
通常用来产生主健;的值
每个用户可以建立多个序列
下面我们建立和查看序列 s1。
<!-- lang: sql -->
CREATE SEQUENCE s1
START WITH 1 --序列初始化默认值
INCREMENT BY 1 --每次序列的增长值
MAXVALUE 10 --序列增长的最大值
MINVALUE -10 --序列增长的最小值
NOCYCLE
NOCACHE;
--查询当前用户下所有的序列
<!-- lang: sql -->
select * from user_sequences;
--初始化序列的值 ps:每执行一次s1.nextavl会根据increment by 后面的这个值增加
<!-- lang: sql -->
select s1.nextavl from dual;
--查看当前序列的值 注意如果当前序列的值没有被初始化过执行下面sql会报错
<!-- lang: sql -->
select s1currval from dual;
--修改序列中某些属性的值 其他的值也以此类推
<!-- lang: sql -->
alter sequence s1 increment by -2;
--删除oracle 序列
<!-- lang: sql -->
drop sequence 序列名称;
<!-- lang: sql -->
--创建一张表来测试一下序列
create table d(
deptno varchar(12) not null
);
select * from d;
insert into d (deptno) values(s1.nextval);
commit;
--注意事物回退,序列号是不会退的
> NOCACHE 每次取值都要计算。
CACHE n 一次就放入内存 n个值。默认值为 20,如果你要连续的使用序列,如定
号的产生,请将 N设大点。如果你不使用序列,而是自己写代码,请注意你的程序效
竞争锁死情况的发生。
停止数据库后,内存中存放的序列值会丢失
user_sequences 中的last_number 列代表重新计算的起始值
序列中有一个 order 的选项,在单实例没有差别,它体现在集群 rac环境中。默认的
项值为 no,就是不按照顺序发生。例如实例 1取cache为20的序列值,1到20存储在
例内存,主机2再调用的时候,会将21到40存储在实例 2的内存中。这样我们的会
同实例取的数值就会不同。Order 的意思为集群中的每个节点想要获得序列的值都要
序得到序列的值。
删除序列的例子: Drop sequence s1;
一旦被删除,就不可以再引用序列的值。
使用序列的原则如下:
如果你想用做主键,请使用不可循环的序列。
如果想快速发生序列的值,请将 cache的值加大。
如果序列内的值要很长时间才能使用完,可以考虑使用可以循环的序列。
ps:如果大家有更好的分享或者已经可以发我邮箱 f_luotao@163.com
web开发扣扣群:87104515
分享到:
相关推荐
Oracle序列创建及使用(txt文本),Oracle序列创建及使用(txt文本),Oracle序列创建及使用(txt文本)
在本篇中,我们将深入探讨Oracle序列的创建、修改和删除。 ### 1. 序列的创建 创建序列的基本语法如下: ```sql CREATE SEQUENCE sequence_name START WITH n -- 起始值 INCREMENT BY n -- 增量值 MINVALUE n ...
总结,Oracle序列和触发器是数据库设计中的重要工具。序列用于生成唯一的整数序列,常作为主键,而触发器则允许在特定事件发生时自动执行代码,两者结合可以实现数据的自动管理和更新,提高数据管理的效率和准确性。...
本文将详细介绍如何在不新建序列的情况下,实现Oracle序列的重置,让其从1开始增长。这种方法通过编写PL/SQL过程来动态调整序列的增量,从而达到重置的目的。 ### Oracle序列重置方法 首先,我们需要理解Oracle...
通过以上步骤,你可以使用Java和MySQL实现一个类似Oracle序列的功能,满足业务需求。请注意,这种方法可能不如Oracle的序列功能那么高效,但在没有内置序列功能的MySQL中,这是一种可行的解决方案。
--创建序列 create sequence seq_user start with 1 increment by 1 nomaxvalue cache 10; --使用序列 insert into user_table(user_id,user_name,user_pwd) vlaues(seq_user.nextval,'tcy','tcy'); --修改...
Oracle 实验报告 - 索引、视图、序列和同义词的创建 本实验报告旨在介绍 Oracle 中的索引、视图、序列和同义词的概念和应用。通过实验,掌握创建索引、视图、序列和同义词的命令,并理解它们在数据库中的作用。 一...
### 二、Oracle序列 序列是Oracle提供的一种自动生成唯一数值的机制,常用于为主键或需要唯一标识符的列自动分配值。在实验中,虽然没有明确展示序列的创建与使用,但可以利用`CREATE SEQUENCE`语句来创建一个序列...
为了在MySQL中实现类似于Oracle序列的功能,可以通过创建一张特殊的表和几个自定义函数来实现。这种方法可以有效地模拟Oracle序列的行为,并能够根据指定的步长和长度来生成数值。 ##### 2.1 创建模拟序列的表 在...
本文将详细介绍Oracle数据库中序列的创建、修改以及删除方法,并通过一个具体的示例来演示序列的使用。 #### 序列的基本概念 序列是一种能够按需生成连续整数的数据库对象。它可以用于自动填充某些字段,特别是当...
总结来说,Oracle序列是实现主键自增的有效工具,通过创建和管理序列,可以确保数据的唯一性和有序性。在实际应用中,应根据具体需求调整序列的参数,如步长、缓存大小等,以优化性能和满足业务逻辑。
### Oracle 使用序列创建自增字段 在数据库设计与开发中,自增字段是十分常见的需求之一,尤其是在需要为每一行记录自动分配一个唯一编号的情况下。Oracle 数据库通过序列(Sequence)这一特性支持自增字段的实现。...
首先,我们需要理解Oracle序列的基本结构和操作。序列由CREATE SEQUENCE语句创建,如: ```sql CREATE SEQUENCE seq_name START WITH 1 INCREMENT BY 1 MINVALUE 1 MAXVALUE 999999999999 CYCLE; ``` 这里,`...
本文将深入探讨如何使用PL/SQL工具来导出Oracle序列,并详细阐述相关的步骤。 首先,让我们了解Oracle序列的基本概念。序列由一系列连续的整数组成,可以设置起始值、增量和最大值等属性。创建序列的基本语法如下:...
创建序列时,可以指定初始值、步长、最大值和最小值,还可以设置是否循环以及缓存大小。序列可以通过 `NEXTVAL` 获取下一个值,`CURRVAL` 获取当前值。如果需要修改序列,可以使用 `ALTER SEQUENCE` 语句,但某些...
创建序列demo_s: create sequence demo_s minvalue 1000 maxvalue 999999999999999999 start with 1000 increment by 1 cache 20; 解释: INCREMENT BY:指定序列增长步长。可以为正...
本文将深入探讨Oracle序列主键自增长的工作原理、创建方法以及如何在表中应用。 **1. Oracle序列(Sequences)基础** Oracle序列是一个数据库对象,它可以生成一系列唯一的数字,这些数字可以被用作表的主键。序列...
oracle 如何创建序列,使用数据库命令如何创建,绝对好用
### Oracle 创建表与序列知识点详解 #### 一、Oracle创建表的基本语法与示例解析 ...以上是关于Oracle创建表和序列的一些基本示例及详细解析。这些知识点对于实际工作中的数据库设计和维护具有重要的指导意义。
创建Oracle序列的基本语法如下: ```sql CREATE SEQUENCE sequence_name START WITH value INCREMENT BY increment [MINVALUE minvalue | NO MINVALUE] [MAXVALUE maxvalue | NO MAXVALUE] [CYCLE | NO CYCLE]...