在oracle中sequence就是序号,每次取的时候它会自动增加。sequence与表没有关系

1.create sequence

create sequence SEQ_LOG_ID
minvalue 1 --增长最小值
maxvalue 9999999999 --增长最大值,也可以设置NOMAXvalue -- 不设置最大值
start with 101 --从101开始计数
increment by 1 --自增步长为1
cache 50 --设置缓存cache个序列,如果系统down掉了或者其它情况将会导致序列不连续,也可以设置为---NOCACHE防止跳号
cycle; --循环,当达到最大值时,不是从start with设置的值开始循环。而是从1开始循环

2.使用sequence的值

insert into 表名(id,name)values(seqtest.Nextval,'sequence 插入测试');
CurrVal:返回 sequence的当前值 
NextVal:增加sequence的值,然后返回 增加后sequence值
注意:第一次NEXTVAL返回的是初始值;随后的NEXTVAL会自动增加你定义的INCREMENT BY值,然后返回增加后的值。

CURRVAL 总是返回当前SEQUENCE的值,但是在第一次NEXTVAL初始化之后才能使用CURRVAL,否则会出错。

一次NEXTVAL会增加一次 SEQUENCE的值,所以如果你在同一个语句里面使用多个NEXTVAL,其值就是不一样的。
- 如果指定CACHE值,ORACLE就可以预先在内存里面放置一些sequence,这样存取的快些。cache里面的取完后,oracle自动再取一组 到cache。 使用cache或许会跳号, 比如数据库突然不正常down掉(shutdown abort),cache中的sequence就会丢失. 所以可以在create sequence的时候用nocache防止这种情况。

 

3.alter and drop sequence

拥有ALTER ANY SEQUENCE 权限才能改动sequence. 可以alter除start至以外的所有sequence参数.如果想要改变start值,必须 drop sequence 再 re-create。

alter sequence SEQTEST maxvalue 9999999;
另: SEQUENCE_CACHE_ENTRIES参数,设置能同时被cache的sequence数目。
DROP SEQUENCE seqTest; 

4.创建触发器trigger触发调用sequence

创建序列
create sequence SEQ_ID
minvalue 1
maxvalue 99999999
start with 1
increment by 1
nocache
order; 建解发器代码为: create or replace trigger tri_test_id
before insert on S_Depart --defore在添加时触发S_Depart 是表名
for each row --行级触发器
declare
nextid number;
begin
IF :new.DepartId IS NULLor :new.DepartId=0 THEN --DepartId是列名
select SEQ_ID.nextval --SEQ_ID正是刚才创建的
into nextid
from sys.dual;
:new.DepartId:=nextid;
end if;
end tri_test_id;

注::new 代表 数据改变后的新值,相对应的有 :old 原值

:= 代表 赋

:nextid表示引用sqlplus中定义的变量

 

oracle创建sequence序列语法的更多相关文章

  1. 【Oracle】详解Oracle中的序列

    序列: 是oacle提供的用于产生一系列唯一数字的数据库对象. 自动提供唯一的数值 共享对象 主要用于提供主键值 将序列值装入内存可以提高访问效率 创建序列: 1.  要有创建序列的权限 create ...

  2. Oracle创建序列,Oracle创建序列语法

    -- Oracle创建序列 Create sequence CREATE SEQUENCE SEQ_SINGER -- 序列名称  START WITH 2 -- 开始数字  MAXVALUE 999 ...

  3. Oracle(创建序列)

    概念: 所谓序列,在oracle中就是一个对象,这个对象用来提供一个有序的数据列,这个有序的数据列的值都不重复. 1.序列可以自动生成唯一值 2.是一个可以被共享的对象 3.典型的用来生成主键值的一个 ...

  4. ORACLE创建、修改、删除序列

    ORACLE没有象SQL SERVER中一样的自增加字段,要实现只能通过SEQUENCE来实现. 1.创建序列语法:(需要CREATE SEQUENCE系统权限) CREATE SEQUENCE 序列 ...

  5. Oracle数据库中序列(SEQUENCE)的用法详解

    Oracle数据库中序列(SEQUENCE)的用法详解   在Oracle数据库中,序列的用途是生成表的主键值,可以在插入语句中引用,也可以通过查询检查当前值,或使序列增至下一个值.本文我们主要介绍了 ...

  6. Oracle创建表和创建序列和修改,增加sql字段

    一.创建表 create table y_parts_classify( pt_id number(10) not null, pt_name varchar2(1000), update_time ...

  7. oracle创建序列,并插入记录

    Oracle序列创建和使用创建序列 语法 CREATE SEQUENCE 序列名 [相关参数] 参数说明 INCREMENT BY  : 序列变化的步进,负值表示递减.(默认1) START WITH ...

  8. Oracle创建自增字段方法-ORACLE SEQUENCE的简单介绍

    引用自 :http://www.2cto.com/database/201307/224836.html   Oracle创建自增字段方法-ORACLE SEQUENCE的简单介绍 先假设有这么一个表 ...

  9. Oracle笔记之序列(Sequence)

    Oracle中序列是一种数据对象,可以视为一个等差数列,我们自增就是一个遍历这个数列的过程,可以取当前值,也可以将当前值自加n后返回,Sequence与表没有太大的关系,有的时候如果表的主键是数值类型 ...

随机推荐

  1. 待补 http://acm.hdu.edu.cn/showproblem.php?pid=6602

    http://acm.hdu.edu.cn/showproblem.php?pid=6602 终于能够看懂的题解: https://blog.csdn.net/qq_40871466/article/ ...

  2. python学习第五十天shutil模块的用法

    什么shutil模块,就是对高级的文件,文件夹,压缩包进行处理的模块,下面简单讲述其用法. 文件和文件夹的操作 拷贝文件内容 import shutil shutil.copyfileobj(open ...

  3. 汇编移位: SHL、SHR、SAL、SAR、ROL、ROR、RCL、RCR

    SHL.SHR.SAL.SAR: 移位指令 ;SHL(Shift Left):      逻辑左移 ;SHR(Shift Right):      逻辑右移 ;SAL(Shift Arithmetic ...

  4. tomcat闪屏是jdk JAVA_HOEM环境变量配置问题

    JAVA_HOME=D:\jdk.18

  5. VMWare15 安装 Mac OS 系统

    文章目录VMWare15 安装 Mac OS 系统安装环境工具准备准备工作MAC虚拟机设置启动MAC前准备工作安装系统安装VMware Tool注意事项参考链接安装环境WIN10VMware Work ...

  6. Form表单的主要Content-Type

    在Spa单页面横行的时代,前后端交互基本都是Json交互(也有通过FormData的,比如上传文件).而在之前的Jsp,Php前后不分家的时候,前后交互好大一部分都是通过Form表单来完成的.From ...

  7. 使用Tabulator遇到的问题

    1.Tabulator好像是不支持ie,按照Tabulator文档引入,打开浏览器总是报缺少文件,换了谷歌果然好了. 2.编辑某一行的数据 代码: //Build Tabulator var tabl ...

  8. CA认证机制的简明解释

    公钥机制面临的问题: 假冒身份发布公钥! 可以用CA来认证公钥的身份.CA有点像公安局,公钥就像身份证.公安局可以向任何合法用户颁发身份证以证明其合法身份.第三方只要识别身份证的真伪就能判断身份证持有 ...

  9. java程序员必知的 8大排序

    Java常用的八种排序算法与代码实现 排序问题一直是程序员工作与面试的重点,今天特意整理研究下与大家共勉!这里列出8种常见的经典排序,基本涵盖了所有的排序算法. 1.直接插入排序 我们经常会到这样一类 ...

  10. Linux 系统参数优化

    修改系统所有进程可打开的文件数量 sysctl -w fs.file-max=2097152sysctl -w fs.nr_open=2097152 > vi /etc/sysctl.conff ...