oracle 主键自增 设置----杜恩德
<div id="topicList">
<div class="forFlow">
<div class = "post">
<h1 class = "postTitle">
<a id="cb_post_title_url" class="postTitle2" href="http://www.cnblogs.com/xxaxx/p/3584036.html">oracle 主键自增</a>
</h1>
<div class="clear"></div>
<div class="postBody">
<div id="cnblogs_post_body"><p><span style="font-size: medium;">将表t_uaer的字段ID设置为自增:(用序列sequence的方法来实现)</span></p>
----创建表
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防止这种情况。
oracle 主键自增 设置----杜恩德的更多相关文章
- oracle主键自增
oracle主键自增 1建立数据表 create table Test_Increase( userid number(10) primary key, /*主键,自动增加*/ ...
- oracle 主键自增并获取自增id
1 创建表 /*第一步:创建表格*/ create table t_user( id int primary key, --主键,自增长 username varchar(20), password ...
- oracle 主键自增
将表t_uaer的字段ID设置为自增:(用序列sequence的方法来实现) ----创建表 Create table t_user( Id number(6), userid varchar2(20 ...
- Oracle主键自增的实现
create sequence seq_字段名_表名 minvalue 1 maxvalue 999999999999999999999999999 start with 1 increment by ...
- mysql的myBatis,主键自增设置
方法一: insert id="insert" parameterType="Person" useGeneratedKeys="true" ...
- mysql 主键自增设置,插入数据就不必再设置了。
(完)
- 关于oracle设置主键自增的问题
关于orcale设置主键自增的问题 关于主键Oracle中并没有提供一个直接的语句设置,对于这个oralce一般都是用序列和触发器来实现 一下又两种方法来实现 一 ,不使用触发器 创建序列: crea ...
- 在Oracle中设置主键自增
转自:https://www.2cto.com/database/201705/636725.html 数据库设置主键自增">oracle数据库设置主键自增: --创建表 create ...
- oracle中主键自增
oracle中主键自增 下面用一个例子来说明自增主键的创建: 1.建用户数据表 drop table dectuser; create table dectuser( userid integer p ...
随机推荐
- 使用Supervisor守护Python进程
1.需求 现在有一个进程需要每时每刻不断的跑,但是这个进程又有可能由于各种原因有可能中断.当进程中断的时候我希望能自动重新启动它,此时,就需要使用到了Supervisor.Supervisor起到守护 ...
- [转]Spring.Net介绍
转自:http://www.cnblogs.com/cilence/archive/2013/02/21/2920478.html Spring.NET下载地址:http://www.springfr ...
- Django 入门案例开发(中)
昨天已经描述了如何搭建Django的开发环境,今天描述业务流程,具体我们要实现一个什么样的业务: 以下的业务都是假设的(网上书店 页面做的low): 1.用户注册及登录业务: 这是一个网上书店阅读 ...
- 魔方NewLife.Cube升级v2.0
魔方是一套集成权限管理的MVC管理后台,最具特色功能是模版覆盖机制,是XCode实体类的最佳搭档! v2.0.2017.1126 借助Ajax支持高级操作,如:删除选中.批量启用禁用等 用户管理增 ...
- es6环境搭建
安装node环境 地址:https://nodejs.org/en/download/ 建立项目目录 建立一个项目目录es6-demo,并在目录下建立两个子文件夹src和dist: src:源代码es ...
- webpack 3.X学习之JS压缩与打包HTML文件
js压缩 webpack自带一个插件uglifyjs-webpack-plugin来压缩js,所以不需要再次安装,当一切都准备妥当,引入uglifyjs-webpack-plugin模块: const ...
- View处理常用方法封装
处理View常用的一些方法:Drawable和Bitmap互相转换,Bitmap改变大小,dp.px互相转换,sp.px互相转换,根据Id查找Drawable,获取屏幕大小等方法. import an ...
- C语言之猜数游戏
#include<stdio.h>#include<stdlib.h>#include<time.h>int main(){ srand(time(0)); int ...
- MFC中小笔记
主要记录下一些有啊没啊的MFC东西. 1.单文档 去掉 无标题:在玩的时候用于FindWindow(class,title) BOOL CMainFrame::PreCreateWindow(CREA ...
- 实践作业2:黑盒测试实践——编写自动化脚本并拍摄测试过程视频 Day 6
下午下课之后小组成员一起交流了一下实验过程遇到的一些问题,并汇总了下各个项目完成情况 该实验目前(写博客是时间)基本完成,具体情况如下 (1)分析系统需求 .(done) (2)设计测试用例.(don ...