Welcome 微信登录

首页 / 数据库 / MySQL / Oracle 中的自动增长字段

环境:PLSQL Developer 7.1.5 Oracle 11.2.0Oracle 中不像MYSQL和MSSQLServer中那样指定一个列为自动增长列的方式,不过在Oracle 中可以通过SEQUENCE序列来实现自动增长字段。在Oracle 中SEQUENCE被称为序列,每次取的时候它会自动增加,一般用在需要按序列号排序的地方。在使用SEQUENCE前需要首先定义一个SEQUENCE,定义SEQUENCE的语法如下:
  1. CREATE SEQUENCE sequence_name   
  2.   
  3. INCREMENT BY step   
  4.   
  5. START WITH startvalue;   
其中sequence_name为序列的名字,每个序列都必须有唯一的名字;startvalue参数值为起始数字,step参数值为步长,即每次自动增长时增加的值。一旦定义了SEQUENCE,你就可以用CURRVAL来取得SEQUENCE的当前值,也可以通过NEXTVAL来增加SEQUENCE,然后返回  新的SEQUENCE值。比如:
  1. sequence_name.CURRVAL   
  2.   
  3. sequence_name.NEXTVAL   
如果SEQUENCE不需要的话就可以将其删除:DROP SEQUENCE sequence_name; 下面举一个使用SEQUENCE序列实现自动增长的例子。首先创建一个名称为seq_PersonId  的SEQUENCE:
  1. CREATE SEQUENCE seq_PersonId   
  2.   
  3. MINVALUE 0  
  4.   
  5. INCREMENT BY 1   
  6.   
  7. START WITH 0;   
注:如果没加这句(MINVALUE 0),可能会出现这个错误(ORA-04006: START WITH 不能小于 MINVALUE)。解决方法就是指定最小值。然后创建T_Person表:
  1. CREATE TABLE T_Person   
  2.   
  3. (    
  4.   
  5. FId NUMBER (10) PRIMARY KEY,    
  6.   
  7. FName VARCHAR2(20),    
  8.   
  9. FAge NUMBER (10)   
  10.   
  11. );   
执行上面的SQL语句后就创建成功了T_Person表,然后执行下面的SQL语句向T_Person表中插入一些数据:
  1. INSERT INTO T_Person(FId,FName,FAge)   
  2.   
  3. VALUES(seq_PersonId.NEXTVAL,"Tom",18);   
  4.   
  5.    
  6.   
  7. INSERT INTO T_Person(FId,FName,FAge)   
  8.   
  9. VALUES(seq_PersonId.NEXTVAL,"Jim",81);   
  10.   
  11.    
  12.   
  13. INSERT INTO T_Person(FId,FName,FAge)   
  14.   
  15. VALUES(seq_PersonId.NEXTVAL,"Kerry",33);   
  • 1
  • 2
  • 下一页
Oracle创建简单的触发器练习Oracle数据库实验应用相关资讯      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)
表情: 姓名: 字数