标签:sequence auto_increment sequence.nextval sequenc.currval
自动增长字段
在设计数据库的时候,有时需要表的某个字段是自动增长的,最常使用自动增长字段的就是表的主键,使用自动增长字段可以简化主键的生成.不同的DBMS中自动增长字段的实现机制也有不同,下面分别介绍。
MYSQL 中设定一个字段为自动增长字段非常简单,只要在表定义中指定字段为AUTO_INCREMENT即可.
例子:
create table t_student ( t_id int primary key auto_increment, t_name varchar(50), t_age int );
insert into t_student(t_name,t_age)values("King",22); insert into t_student(t_name,t_age)values("Hong",22);
Oracle 中的自动增长字段
Oracle中不像MYSQL和MSSQLServer中那样指定一个列为自动增长列的方式,不过在Oracle中可以通过SEQUENCE序列来实现自动增长字段.
在使用SEQUENCE前需要首先定义一个 SEQUENCE,定义 SEQUENCE 的语法如下:
CREATE SEQUENCE sequence_name INCREMENT BY step START WITH startvalue;
其中sequence_name为序列的名字,每个序列都必须有唯一的名字;startvalue参数值为起始数字,step参数值为步长,即每次自动增长时增加的值.
一旦定义了SEQUENCE,你就可以用CURRVAL来取得SEQUENCE的当前值,也可以通过NEXTVAL来增加SEQUENCE,然后返回新的SEQUENCE值,比如:
sequence_name.CURRVAL sequence_name.NEXTVAL
如果SEQUENCE不需要的话就可以将其删除:
DROP SEQUENCE sequence_name;
下面举一个使用SEQUENCE序列实现自动增长的例子.
首先创建一个名称为seq_PersonId的SEQUENCE:
create sequence seq_t_person increment by 1 start with 1;
然后创建T_Person表:
CREATE TABLE T_Person ( FId NUMBER (10) PRIMARY KEY, FName VARCHAR2( 20) , FAge NUMBER ( 10) ) ;
执行上面的 SQL 语句后就创建成功了 T_Person 表,然后执行下面的 SQL 语句向
T_Person 表中插入一些数据:
INSERT INTO T_Person( FId, FName, FAge) VALUES( seq_PersonId.NEXTVAL, ‘ Tom‘ , 18) ; INSERT INTO T_Person( FId, FName, FAge) VALUES( seq_PersonId.NEXTVAL, ‘ Jim‘ , 81) ; INSERT INTO T_Person( FId, FName, FAge) VALUES( seq_PersonId.NEXTVAL, ‘ Kerry‘ , 33) ;
标签:sequence auto_increment sequence.nextval sequenc.currval
原文地址:http://8196049.blog.51cto.com/8186049/1684662