oracle主键id自动自增_Oracle主键ID设置自动增长(序列+触发器)
----创建表
create table users
(
user_id number(6) not null,
user_name varchar2(20) not null,
user_pwd varchar2(20) not null,
user_email varchar2(20),
user_intro varchar2(20),
primary key (user_id)
);
----创建序列
create sequence users_seq
increment by 1
start with 1
nomaxvalue
nominvalue
nocache
----创建触发器
create or replace trigger tr_user
before insert on users
for each row
begin
select users_seq.nextval into :new.user_id from dual;
end;
----插入数据
insert into users values
(users_seq.nextval,'admin','admin','undoner@gmail.com','undoner')
----查询信息
select * from users
----查询序列
select users_seq.nextval from dual;
对sequence说明:
increment by
:用于指定序列增量(默认值:1),如果指定的是正整数,则序列号自动递增,如果指定的是负数,则自动递减。
start with:用于指定序列生成器生成的第一个序列号,当序列号顺序递增时默认值为序列号的最小值当序列号顺序递减时默认值为序列号的最大值。
Maxvalue:用于指定序列生成器可以生成的组大序列号(必须大于或等于start with,并且必须大于minvalue),默认为nomaxvalue。
Minvalue:用于指定序列生成器可以生成的最小序列号(必须小于或等于starr with,并且必须小于maxvalue),默认值为nominvalue。
Cycle:用于指定在达到序列的最大值或最小值之后是否继续生成序列号,默认为nocycle。
Cache:用于指定在内存中可以预分配的序列号个数(默认值:20)。
在sequence中应注意:
1、第一次NEXTVAL返回的是初始值;随后的NEXTVAL会自动增加你定义的INCREMENT
BY值,然后返回增加后的值。CURRVAL总是返回当前SEQUENCE的值,但是在第一次NEXTVAL初始化之后才能使用CURRVAL,否则会出错。一次NEXTVAL会增加一次SEQUENCE的值,所以如果你在同一个语句里面使用多个NEXTVAL,其值就是不一样的。
2、如果指定CACHE值,ORACLE就可以预先在内存里面放置一些sequence,这样存取的快些。cache里面的取完后,oracle自动再取一组到cache。使用cache或许会跳号,比如数据库突然不正常down掉(shutdown
abort),cache中的sequence就会丢失.所以可以在create sequence的时候用nocache防止这种情况。
oracle主键id自动自增_Oracle主键ID设置自动增长(序列+触发器)相关推荐
- EF数据迁移设置Id不自增(ABP数据迁移设置int id 不自增)
在abp里面使用int作为主键类型的话数据迁移生成的数据库表默认id是自增的类型的,某些情况下我们并不希望使用自增的id. 那些该如何移除自增设置?下面给大家介绍两种方式: 在实体类主键加上 [Dat ...
- html 表格自动编号,Word中如何给表格设置自动编号
我们在使用Word中可能需要给表格设置自动编号,让工作效率变得更快捷一些,那么如何给表格设置自动编号呢,接下来由学习啦小编为大家推荐Word使用技巧,希望对你有所帮助! 关于Word: Word软件提 ...
- linux设置成自动获取ip地址吗,centos怎么设置自动获取ip地址
在适合Cable ip路由器环境下,centos可以设置成自动获取ip地址方式,下面是学习啦小编给大家整理的一些有关centos设置自动获取ip地址的方法,希望对大家有帮助! centos设置自动获取 ...
- oracle如何写循环日期自增_Oracle动态创建时间分区,以及Oracle12c中快速创建自增列...
时间分区可以按照年月日时分秒进行分区,一般按照日或月分区就足够了,这里按照的是日分区 demo如下 create table APDEMO ( OID NUMBER(38) generated as ...
- 服务器设置为自动登录,Windows Server 2008 R2怎样设置自动登陆(登录)
[LeetCode] Remove Duplicates from Sorted List II 移除有序链表中的重复项之二 Given a sorted linked list, delete al ...
- html表格数据按自定义公式自动计算,WPS表格如何设置自动计算公式
WPS表格功能很强大,在平时工作时候会用到很多关于他的小技巧,那么一般要用到表格那些功效呢?下面学习啦小编就与大家分享WPS表格自动计算公式的方法. WPS表格设置自动计算公式方法 WPS表格设置步骤 ...
- Windows批处理设置自动获取IP及DNS或固定IP及DNS
1.设置固定IP.bat echo off echo 设置固定IP.... netsh interface IP set addr "无线网络连接" static 192.168. ...
- Oracle使用序列触发器实现主键id自动增长
记录一下oracle中的字段自增问题 在mysql中我们可以使用auto_increment来实现自动增长功能 而在oracle主键没有自动增长类型,所以一般使用序列产生的值作为某张表的主键,实现主键 ...
- oracle和mybatis自增,在Springboot项目中使用MybatisPlus和Oracle实现主键ID的自增
在Springboot项目中使用MybatisPlus和Oracle实现主键ID的自增 发布时间:2020-11-18 15:49:35 来源:亿速云 阅读:125 作者:Leah 在Springbo ...
最新文章
- NativeXml (1):下载、安装、测试
- C# 的关键字系列 (3 of n)
- storm集群和单点安装
- 【51Nod - 1094】和为k的连续区间 (前缀和,二分查找)
- 综评:5个方面看刚刚发布的Kubernetes 1.12
- php取到的时间总是差8小时的解决方法
- Zabbix(二)通过API在zabbix系统中查看、删除及创建监控主机
- Data Minig --- Decision Tree ID3 C4.5 Gini Index
- SQL_create_table创建表
- 基于Socket的UDP和TCP编程介绍-转
- seleniumpython定位网页元素方法_Python+Selenium 定位元素
- X86栈切换,任务切换
- 程序人生 - 王者荣耀重名代码
- dcs world f15c教学_DCS小百科,工控人必须知道的一些小知识
- 算法入门电子资料《算法图解》+《我的第一本算法书》
- GDUT 第一次组队赛 Team up! Team up! Team up!(三,dp,dfs)
- 初探MyBatis框架
- Python OOP 项目实践:烤地瓜,搬家具
- 医学影像后处理服务器系统,医学影像后处理的应用
- Kotlin-Android世界的一股清流-流程控制