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;

时间: 2024-12-14 17:58:50

Oracle(创建序列)的相关文章

oracle创建序列&索引&视图

---oracle学习 --oracle的管理系统学习 --oracle的数据管理学习 --oracle的用户管理 --oracle二维表管理 --oracle的其他知识 --oracle的序列,视图,索引 --oracle的分页查询 --oracle的数据库备份 --oracle的图形化界面操作 序列 1 --oracle的序列的学习 2 --创建序列 3 --使用 create sequence 序列名 4 --特点1:默认开始是没有值的,也就是指针指在了没有值的位置. 5 --特点2:序列

oracle创建序列

create table PROJ_ISMULTIBANK( pid NUMBER(10) PRIMARY KEY auto, projid NUMBER(10), loanbankname VARCHAR2(250), loanbankid VARCHAR2(300), loanmoney float, assureterm float, assuretermtype VARCHAR2(4)); delete from PROJ_ISMULTIBANK where projid = xxx a

ORACLE 创建视图索引序列

/* 视图View 视图是从若干基本表和(或)其他视图构造出来的表 视图存放的都是查询语句,并没有真实的数据 虚表 作用 限制对数据的操作 复杂查询变简单 提供相同数据的不同显示 UNION ALL 直接添加到一起 UNION 添加到一起并去重 */ --赋予scott用户创建视图的权限 sqlplus / as sysdba; GRANT CREATE VIEW TO SCOTT; --创建视图 CREATE OR REPLACE VIEW V_EMP AS SELECT * FROM EMP

Oracle查询库中已有存储过程、创建定时刷新视图、角色权限传递、创建序列触发器

SELECT * FROM V$ACCESS O WHERE O.TYPE LIKE 'PROCEDURE%' 创建物化视图且定时刷新create materialized view mv_name refresh force on demand start with sysdate next sysdate + 1create materialized view mv_name refresh force on demand start with sysdate next to_date( c

Oracle创建自增ID

先创建序列sequence create sequence S_User minvalue 1 nomaxvalue  -- 或 maxvalue 999 start with 1 increment by 1 cache 20; -- 或 nocache 参考: oracle 序列中cache 有什么用途 然后创建触发器 create or replace trigger trg_user before insert on T_USER for each row begin select it

oracle创建用户、授予权限及删除用户1

oracle创建用户.授予权限及删除用户 创建用户 oracle对表空间 USERS 无权限 alter user 用户名 quota unlimited on users; //创建临时表空间 create temporary tablespace test_temp tempfile 'E:/oracle/product/10.2.0/oradata/testserver/test_temp01.dbf' size 32m autoextend on next 32m maxsize 204

Oracle 创建普通用户,并赋予权限

采用sys or system / manager as sysdba; 连接数据库. 创建普通用户konglin: create user konglin identified by pwd_oracle; 删除用户, drop user konglin; 授予用户登录数据库的权限: grant create session to konglin; 授予用户操作表空间的权限: grant unlimited tablespace to konglin; grant create tablesp

oracle 重置序列从指定数字开始的方法详解

原文 oracle 重置序列从指定数字开始的方法详解 重置oracle序列从指定数字开始 declare n number(10); v_startnum number(10):=10000001;--从多少开始 v_step number(10):=1;--步进 tsql varchar2(200); v_seqname varchar2(200):='MIP_JF_SEQUENCE';--序列名 begin execute immediate 'select '||v_seqname||'.

Oracle 创建用户

200 ? "200px" : this.width)!important;} --> 介绍 本篇文章主要介绍在oracle中怎样使用语句创建用户,如果你是数据库运维人员那么这是必须掌握的,顺便提一下在oracle中数据库的概念它和其它数据库系统比如mysql和sqlserver不一样,在oracle中可以将用户理解成其它的数据库系统中的数据库的概念,oracle中只有一个全局数据库并且不能再创建其它数据库了,再创建一个数据库就相当于再重新安装一套数据库服务. 数据库版本:ora