Welcome 微信登录

首页 / 数据库 / MySQL / Oracle中序列-sequence的应用

Oracle中没有象Acces中自动编号的字段类型,所以在oracle中要想用一个字段自动增值,还比较麻烦,在此提供给大家一个方法,利用序列,来完成字段的自动增加,下边介绍一下怎么创建序列,使用序列,和删除序列。1.创建序列--------------create sequence  create sequence  Seq_AutoID   //所起序列名叫 Seq_AutoID ,需要记住此序列名,以后方可调用minvalue   1   //最小值从1开始 可以根据自己的需要自定义maxvalue 9999999999999999999     //序列最大值为 999999999999999999999 可以自定义start with 1   //从1开始 可以自定义increment by  1   //递增幅度为 1   可以自定义cache 20 ;     //缓存202. 调用序列,完成自动加1 ------------Seq_AutoID.nextval在向表中插入、更新 数据时可以调用 ,由于自己实际应用中只用到了 插入时调用,所以在此只举此列EG:  insert into table1 ( f1,f2,f3,f4) select  f1,f2,f3,Seq_AutoID.nextval  from table2  where 条件当然上边这句是批量插入数据,你也可以用 values值来一条条插入。在此需说明的一点为table1.f4字段需为数值型(number)型。这样,你的table1中的f4字段就是从1开始,以幅度为1来递增的数值了,实现了自动增加的功能。当然幅度可以自己定义。还有一点是 序列是值是唯一的,只要你一直用nextval来递增的话,在oracle中序列号不会重复.可以用CurrVal来查询当前的序列值,在你nextval后,currval也会跟着变。3.序列的删除--------------drop sequence当为了重置序列时,或不需要序列时,可以先删除序列EG: drop sequence Seq_AutoID;4.用序列来修改某个字段的值eg:  update cse_depot set jobid=Seq_AutoID.nextval 以上这个例子是用当前的序列值给cse_depot的字段 jobid赋值,使jobid字段实现自动加1功能以上几点是自己跟据自己所用总结出来的,也希望大家跟帖参与讨论。Oracle对日期时间的处理Oracle中NUMBER类型如果不指定长度和小数点精度默认是多长相关资讯      oracle数据库教程 
  • Oracle raw数据类型介绍  (01/29/2013 10:05:53)
  • 监听器注册与ORA-12514 错误分析  (11/13/2012 14:30:08)
  • Oracle SQL的cursor理解  (11/13/2012 14:16:17)
  • Oracle 如何强制刷新Buffer Cache  (01/29/2013 10:02:46)
  • dblink致Oracle库的SCN变成两库的  (11/13/2012 14:24:41)
  • Linux操作系统下完全删除Oracle数  (11/13/2012 08:25:52)
本文评论 查看全部评论 (0)
表情: 姓名: 字数