我很惊讶地看到oracle没有"auto number“数据类型。有没有办法使用自动编号数据类型,就像我们在MS access中有这种数据类型一样?
发布于 2011-06-18 01:47:31
This blog post描述了此功能的一个选项。
下面引用了关键元素,但这篇文章更深入。
创建序列test_seq以1递增1 NOMAX值开始;
紧接着是
在测试值中插入(test_seq.nextval,‘
!’);
或
create trigger test_trigger before insert on test为每行begin select test_seq.nextval into :new.id from dual;end;
发布于 2011-06-18 03:02:17
在oracle中,您使用序列。您可以有任意数量的序列,并使用它们中的任何一个为任何表中的任何字段分配一个唯一编号,或者只需调用一个序列将一个编号分配给一个变量。
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 参考文献:
http://www.techonthenet.com/oracle/sequences.php
http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/statements_6015.htm
https://stackoverflow.com/questions/6389641
复制相似问题