oracle 主键自增
将表t_uaer的字段ID设置为自增:(用序列sequence的方法来实现)
----创建表
Create table t_user(
Id number(6),
userid varchar2(20),
loginpassword varchar2(20),
isdisable number(6) );
----创建序列
create sequence user_seq
increment by 1
start with 1
nomaxvalue
nominvalue
nocache
----创建触发器
create or replace trigger tr_user
before insert on t_user
for each row
begin
select user_seq.nextval into :new.id from dual;
end;
----测试
insert into t_user(userid,loginpassword, isdisable) values('ffll','liudddyujj', 0);
insert into t_user(userid,loginpassword, isdisable) values('dddd','zhang', 0) ;
select * from t_user;
就可以看出结果。
***********************************************************************
对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防止这种情况。
转载于:https://www.cnblogs.com/xxaxx/p/3584036.html
oracle 主键自增相关推荐
- mybatis 实现oracle主键自增的机制
本篇文章将研究mybatis 实现oracle主键自增的机制 首先我们看对于同一张student表,对于mysql,sql server,oracle中它们都是怎样创建主键的 在mysql中 [sql ...
- oracle自增主键用途,Oracle主键自增
在设置主键自增时有几种方法,今天介绍其中一种方法:sequence+trigger 1.创建表 create table tbl_card --创建校园卡表 ( id int primary key, ...
- oracle主键自增
前言 众所周知,MySQL数据库的主键自增设置非常简单,任何一个常用的可视化工具都支持,只要打一下勾就可以开启主键自增了.然而Oracle并没有那么简单,它需要执行几个简短语句. 操作步骤 为了方便讲 ...
- 1、Oracle主键自增、清0,与用户授权
1.相关命令: sqlplus /nolog 查看Oracle数据库是否安装成功 conn uid/ups@orcl 连接数据库::uid是用户名.ups是密码,orcl是数据库名 通过S ...
- mybatis-puls 集成oracle 主键自增
oracle通过mybatis-puls新增数据时,主键自增不同于MySQL添加注解,oracle需要进行配置 1,创建表 2,创建序列 create sequence XXX_SEQ INCREME ...
- Mybatis 中Oracle主键自增设置
Oracle中不存在mysql那种主键自增的设计 1. 序列+selectKey标签 Oracle新建序列 CREATE SEQUENCE [序列名称] INCREMENT BY 1 /**每次自增1 ...
- oracle主键自增触发器编写
1.创建自增序列 create sequence 序列名 minvalue 1 nomaxvalue increment by 1 start with 1 nocache; 2.创建对应表的触发 ...
- oracle hibernate 主键,hibernate oracle 主键 自增
Hibernate 实现对oracle 数据库表ID的自动增长 1:建表 Create table test_table ( id integer ...
- oracle主键可以自增吗,设置Oracle主键自增
oracle没有设置主键auto increment的功能,需要自己编写序列和触发器实现主键自动递增. 示例: 创建表menu: create table menu( menuId number(10 ...
- oracle主键自增 数据插入时主键自增
1.建表 create table overseas_users(overseas_id varchar2(10) not null primary key, --主键name varchar2(50 ...
最新文章
- 黑马程序员-张老师基础加强3-内省
- 解析Python中的线程与进程
- rxjs pipe和map组合的一个实际例子的单步调试
- SQL SERVER 的SQL语句优化方式小结
- EXCHANGE 2013 一例证书故障
- 【VRP】基于matlab改进的模拟退火和遗传算法求解车辆路径规划问题【含Matlab源码 343期】
- CSDN如何获取积分
- taobao滑动验证码解决方法
- 斐讯AI音箱怎么绑定扫地机器人_斐讯智能音箱常见问题解答
- mini2440 LED设备驱动开发源代码(宋宝华框架)
- 钟表维修管理系统技术解析(三) 工单录入
- sap采购订单更改记录_SAP采购运费发票处理
- 支持本地挂载的网盘文件列表工具AList
- Android高手笔记 - 网络优化
- 【全球品牌】圣经中人物的名字有哪些?
- AsyncTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
- Google 主页空间测试报告
- AVB传输协议数据包分析
- php赛车游戏开发文档,React 开发一款简单的赛车游戏
- java生成txt表格_java读取txt文件表格并生成新txt