Oracle(创建序列)
概念:
所谓序列,在oracle中就是一个对象,这个对象用来提供一个有序的数据列,这个有序的数据列的值都不重复。
1.序列可以自动生成唯一值
2.是一个可以被共享的对象
3.典型的用来生成主键值的一个对象
4.可以替代应用程序代码
5.当sequence的值存放在缓存中时可以提高访问效率。
创建序列语法:
CREATE SEQUENCE name
[INCREMENT BY n]
[START WITH n]
[{MAXVALUE n | NOMAXVALUE}]
[{MINVALUE n | NOMINVALUE}]
[{CYCLE | NOCYCLE}]
[{CACHE n | NOCACHE}]
note:
1.increment by n:表明值每次增长n(步长)
2.start with n: 从n开始
3.{MAXVALUE n | NOMAXVALUE}: 设置最大值
4.{MINVALUE n | NOMINVALUE}: 设置最小值,start with不能小于最小值。
5.CYCLE | NOCYCLE : 是否循环,建议不使用
6.CACHE n | NOCACHE : 是否启用缓存。
例如:
create sequence emp_id_seq
start with 1
increment by 1
nomaxvalue
nominvalue
nocycle
nocache;
note:可以通过数据字典user_sequences查看当前用户所拥有的序列信息。
例如:
select sequence_name,min_value,max_value,last_number
from user_sequences
where sequence_name = 'EMP_ID_SEQ';
序列的属性(伪列):
1.nextval : 返回下一个可用的序列值。
就算是被不同的用户调用,每次也返回一个唯一的值。
2.currval :获取序列当前的值。
在currval调用之前,必须保证nextval已经获取过一次值。
使用sequence:
例如:
1.向表中插入数据
insert into emp values(emp_id_seq.nextval);
2.查看序列的当前值
select emp_id_seq.currval from dual;
3.获取序列的下一个值。
select emp_id_seq.nextval from dual;
缓存:
使用缓存可以提高sequence的访问效率
修改sequence:
ALTER SEQUENCE name
[INCREMENT BY n]
[{MAXVALUE n | NOMAXVALUE}]
[{MINVALUE n | NOMINVALUE}]
[{CYCLE | NOCYCLE}]
[{CACHE n | NOCACHE}]
note:
1.必须是序列的拥有者,或者具有alter权限
2.修改后的序列,只对之后的值起作用。
3.不能修改start with,如果想改,只能删除,重新创建,启动。
删除sequence:
drop sequence seq_name;
例如:
drop sequence emp_id_seq;
Oracle(创建序列)的更多相关文章
- Oracle创建序列,Oracle创建序列语法
-- Oracle创建序列 Create sequence CREATE SEQUENCE SEQ_SINGER -- 序列名称 START WITH 2 -- 开始数字 MAXVALUE 999 ...
- oracle创建序列,并插入记录
Oracle序列创建和使用创建序列 语法 CREATE SEQUENCE 序列名 [相关参数] 参数说明 INCREMENT BY : 序列变化的步进,负值表示递减.(默认1) START WITH ...
- 分享知识-快乐自己:Oracle 创建序列 及 使用序列
1.创建序列语法: create sequence 序列名 [可选参数] 序列名常定义为‘seq_XXX’的形式,创建序列不能使用replace 可选参数说明: increment by: 序列每次增 ...
- Oracle创建序列
CREATE SEQUENCE IF NOT EXISTS seq_fund_execute
- Oracle创建表和创建序列和修改,增加sql字段
一.创建表 create table y_parts_classify( pt_id number(10) not null, pt_name varchar2(1000), update_time ...
- ORACLE创建、修改、删除序列
ORACLE没有象SQL SERVER中一样的自增加字段,要实现只能通过SEQUENCE来实现. 1.创建序列语法:(需要CREATE SEQUENCE系统权限) CREATE SEQUENCE 序列 ...
- oracle创建新的用户 创建序列 并生成自动自增
1.用有dba权限的用户登录:sys用户 system 口令:manager 2.创建一个新用户:create user abc identified by 123456; 3.授予DBA权限: gr ...
- oracle视图就是封装了一条写好的sql语句 可通过视图修改表结构 ; oracle需要手动创建序列
create sequence student_sid; --创建序列 oracle只能通过手动方式创建序列
- oracle中序列,同义词的创建
序列 序列是用来生成唯一,连续的整数的数据库对象.序列通常用来自动生成主机那或唯一键的值.序列可以按升序排序, 也可以按降序排序.例如,销售流水表中的流水号可以使用序列自动生成. 创建序列语法: cr ...
随机推荐
- RSA加密
1.RSA的公钥和私钥到底哪个才是用来加密和哪个用来解密? 答:公钥加密私钥可解,私钥加密公钥可解. 2.RSA非对称加密特点? 答:算法强度复杂.加密解密速度比对称加密解密的速度慢.一个公钥,对外开 ...
- Centos下ACL(访问控制列表)介绍(转)
我们知道,在Linux操作系统中,传统的权限管理分是以三种身份(属主.属組以及其它人)搭配三种权限(可读.可写以及可执行),并且搭配三种特殊权限(SUID,SGID,SBIT),来实现对系统的安全保护 ...
- Jenkins搭建的几个坑记下
坑一 安装cobertura插件后,一定要在工程代码的pom.xml文件里添加如下插件配置: <plugin> <groupId>org.codehaus.mojo</g ...
- layzr.js新版使用方法
转载请注明出处:http://www.cnblogs.com/fiter/p/5413919.html 前言 今天研究这个JS库,本人新手,将官方的js代码下载下来后始终无法正常使用,经过多番尝试,终 ...
- XPath、XQuery 以及 XSLT 函数
存取函数 名称 说明 fn:node-name(node) 返回参数节点的节点名称. fn:nilled(node) 返回是否拒绝参数节点的布尔值. fn:data(item.item,...) 接受 ...
- http 中定义的八种请求的介绍
在http1.1协议中,共定义了8种可以向服务器发起的请求(这些请求也叫做方法或动作),本文对这八种请求做出简要的介绍: 1.PUT:put的本义是推送 这个请求的含义就是推送某个资源到服务器,相当于 ...
- 目标检测方法——SSD
SSD论文阅读(Wei Liu--[ECCV2016]SSD Single Shot MultiBox Detector) 目录 作者及相关链接 文章的选择原因 方法概括 方法细节 相关背景补充 实验 ...
- 解决jquery mobile的header和footer在点击屏幕的时候消失的办法
给header和footer添加 data-position="fixed" 和 data-tap-toggle="false"即可,代码如下: <div ...
- String 与StringBuilder有什么区别
C# String 对象是不可改变的.每次使用 System.String 类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间.在需要对字符串执行重复修改的情况下,与 ...
- C++预定义字符函数
利用 get 成员函数可读取文件中的一切字符,包括空白字符.文件结尾.用 >> 读取文件,会自动忽略空白字符(空格.换行符.制表符) C++ 预定义的字符函数(均在 cctype 库中定义 ...