Sequence在Oracle中的使用

简介: Sequence在Oracle中的使用

Oracle中,当需要建立一个自增字段时,需要用到sequence。sequence也可以在mysql中使用,但是有些差别,日后再补充,先把oracle中sequence的基本使用总结一下,方便日后查阅。

1、创建sequence

1. create sequence SEQ_ON_USER
2. minvalue 1
3. maxvalue 999999999999999999999999999
4. start with 1
5. increment by 1
6. nocache;

说明:

minvalue:序列最小值

maxvalue/nomaxvalue:序列最大值/没有最大值

start with 1:序列从1开始

increment by1:每次增加1

cache/nocache:nocache不缓存。cache缓存。开启缓存,效率高,只是如果数据库宕机了,缓存丢失,会出现序列跳号情况。


2、查看已有sequence

select * from user_sequences;

3、删除指定sequence

DROP SEQUENCE SEQ_ON_USER;

4、查看指定sequence的当前值:

两种方式:

select last_number from user_sequences wheresequence_name='SEQ_ON_USER';
select SEQ_ON_USER.nextval from sys.dual;

       5、创建触发器使用sequence设置主键自动插入。

1. create or replace trigger "SEQ_ON_USER_GENERATOR" before
2. insert on databasename1.T_USER for each row
3. declare
4.          mid number,
5. begin
6. select SEQ_ON_USER.nextval into mid from dual;
7.     :new.id:=mid;
8. end
9. 
10. create trigger SEQ_ON_USER_Trigger 
11. 
12. before insert on T_USER for each row
13. begin
14. select SEQ_ON_USER.nextval into :new.id from dual; 
15. end SEQ_ON_USER_Trigger;


       6、代码中使用sequence.nextval插入主键值。

【小结】

       菜鸟一枚,还需多多积累。


相关文章
|
6月前
|
SQL Oracle 关系型数据库
整合Mybatis-Plus高级,Oracle 主键Sequence,Sql 注入器实现自定义全局操作
整合Mybatis-Plus高级,Oracle 主键Sequence,Sql 注入器实现自定义全局操作
138 0
|
缓存 Oracle 关系型数据库
使用序列(Sequence)在 Oracle 数据库中管理唯一标识符
使用序列(Sequence)在 Oracle 数据库中管理唯一标识符
199 0
|
SQL XML Oracle
整合Mybatis-Plus高级,Oracle 主键Sequence,Sql 注入器实现自定义全局操作(下)
整合Mybatis-Plus高级,Oracle 主键Sequence,Sql 注入器实现自定义全局操作(下)
|
SQL XML Oracle
整合Mybatis-Plus高级,Oracle 主键Sequence,Sql 注入器实现自定义全局操作(中)
整合Mybatis-Plus高级,Oracle 主键Sequence,Sql 注入器实现自定义全局操作(中)
|
SQL Oracle 关系型数据库
整合Mybatis-Plus高级,Oracle 主键Sequence,Sql 注入器实现自定义全局操作(上)
整合Mybatis-Plus高级,Oracle 主键Sequence,Sql 注入器实现自定义全局操作(上)
|
存储 Oracle 关系型数据库
Oracle的sequence
  概述   Oracle的sequence,就是序列号,它提供一系列的按照事先指定的方式进行增长的数字。oracle sequence的最大值是38个整数。【 Sequences are database objects from which multiple users can generate unique integers.】。一般来说,sequence常用于生成数据库的主键。   Oracle将sequence的定义存储在数据字典之中,因此,所有的sequence都在数据库的SYSTEM表空间里面。
187 0
|
Oracle 关系型数据库
Oracle创建Sequence时Order/NoOrder选项
Oracle创建Sequence时Order/NoOrder选项
307 0
|
SQL Oracle 关系型数据库
MySQL模拟Oracle序列sequence
DROP TABLE IF EXISTS sys_sequence ; CREATE TABLE sys_sequence (   seq_name VARCHAR (50) NOT NULL,   curr_value BIGINT NOT NULL DEFAULT 0,   in...
2257 0