将表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 主键自增相关推荐

  1. mybatis 实现oracle主键自增的机制

    本篇文章将研究mybatis 实现oracle主键自增的机制 首先我们看对于同一张student表,对于mysql,sql server,oracle中它们都是怎样创建主键的 在mysql中 [sql ...

  2. oracle自增主键用途,Oracle主键自增

    在设置主键自增时有几种方法,今天介绍其中一种方法:sequence+trigger 1.创建表 create table tbl_card --创建校园卡表 ( id int primary key, ...

  3. oracle主键自增

    前言 众所周知,MySQL数据库的主键自增设置非常简单,任何一个常用的可视化工具都支持,只要打一下勾就可以开启主键自增了.然而Oracle并没有那么简单,它需要执行几个简短语句. 操作步骤 为了方便讲 ...

  4. 1、Oracle主键自增、清0,与用户授权

    1.相关命令: ​ sqlplus /nolog 查看Oracle数据库是否安装成功 ​ conn uid/ups@orcl 连接数据库::uid是用户名.ups是密码,orcl是数据库名 ​ 通过S ...

  5. mybatis-puls 集成oracle 主键自增

    oracle通过mybatis-puls新增数据时,主键自增不同于MySQL添加注解,oracle需要进行配置 1,创建表 2,创建序列 create sequence XXX_SEQ INCREME ...

  6. Mybatis 中Oracle主键自增设置

    Oracle中不存在mysql那种主键自增的设计 1. 序列+selectKey标签 Oracle新建序列 CREATE SEQUENCE [序列名称] INCREMENT BY 1 /**每次自增1 ...

  7. oracle主键自增触发器编写

    1.创建自增序列 create sequence 序列名 minvalue 1 nomaxvalue  increment by 1  start with 1 nocache; 2.创建对应表的触发 ...

  8. oracle hibernate 主键,hibernate oracle 主键 自增

    Hibernate 实现对oracle 数据库表ID的自动增长 1:建表 Create      table        test_table       ( id      integer     ...

  9. oracle主键可以自增吗,设置Oracle主键自增

    oracle没有设置主键auto increment的功能,需要自己编写序列和触发器实现主键自动递增. 示例: 创建表menu: create table menu( menuId number(10 ...

  10. oracle主键自增 数据插入时主键自增

    1.建表 create table overseas_users(overseas_id varchar2(10) not null primary key, --主键name varchar2(50 ...

最新文章

  1. 黑马程序员-张老师基础加强3-内省
  2. 解析Python中的线程与进程
  3. rxjs pipe和map组合的一个实际例子的单步调试
  4. SQL SERVER 的SQL语句优化方式小结
  5. EXCHANGE 2013 一例证书故障
  6. 【VRP】基于matlab改进的模拟退火和遗传算法求解车辆路径规划问题【含Matlab源码 343期】
  7. CSDN如何获取积分
  8. taobao滑动验证码解决方法
  9. 斐讯AI音箱怎么绑定扫地机器人_斐讯智能音箱常见问题解答
  10. mini2440 LED设备驱动开发源代码(宋宝华框架)
  11. 钟表维修管理系统技术解析(三) 工单录入
  12. sap采购订单更改记录_SAP采购运费发票处理
  13. 支持本地挂载的网盘文件列表工具AList
  14. Android高手笔记 - 网络优化
  15. 【全球品牌】圣经中人物的名字有哪些?
  16. AsyncTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
  17. Google 主页空间测试报告
  18. AVB传输协议数据包分析
  19. php赛车游戏开发文档,React 开发一款简单的赛车游戏
  20. java生成txt表格_java读取txt文件表格并生成新txt

热门文章

  1. sql 同步2个表中的一个字段数据
  2. Git 分支 - 分支的新建
  3. [转]linux signal
  4. bug篇——MySQL的时区问题
  5. 远离故障的十大原则-好文
  6. 洛谷 P2473 [SCOI2008]奖励关 解题报告
  7. erlang 分布式数据库Mnesia 实现及应用
  8. NotePad++ 调试PHP代码中文显示乱码
  9. iOS 关于修饰代理用weak还是assign
  10. JS学习笔记(不断更新)