开发者

Does oracle have "auto number" data type [duplicate]

This question already has answers here: 开发者_Go百科 It is possible to do a autonumber sequence in a SELECT on Oracle? (3 answers) Closed 9 years ago.

I am amazed to see that oracle does not have "auto number" data type. Is there any way to use auto number data type as we have this data type in MS access?


This blog post describes an option for this functionality.

Key elements are quoted below, but the post goes into more depth.

create sequence test_seq 
start with 1 
increment by 1 
nomaxvalue;

Followed by

insert into test values(test_seq.nextval, 'voila!');

OR

create trigger test_trigger
before insert on test
for each row
begin
select test_seq.nextval into :new.id from dual;
end;


In oracle you use a Sequence. You can have any number of sequences, and use any of them to assign a unique number to any field in any table or just call on one to assign a number to a variable.

SQL> CREATE SEQUENCE demo_seq INCREMENT BY 1 MAXVALUE 999999999999999999999999999 MINVALUE 0 NOCACHE;

Sequence created.

SQL> select demo_seq.nextval from dual;
   NEXTVAL                                                                      
----------                                                                      
         0  

SQL> select demo_seq.nextval from dual;

   NEXTVAL                                                                      
----------                                                                      
         1   

SQL> select demo_seq.nextval from dual;
   NEXTVAL                                                                      
----------                                                                      
         2   

SQL> select demo_seq.currval from dual;
   CURRVAL                                                                      
----------                                                                      
         2   

References:

http://www.techonthenet.com/oracle/sequences.php

http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/statements_6015.htm

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜