创建两个表,用来做测试:
create table test
(id int,name varchar2(10));
create table test1
(id int,name varchar2(10));
创建sequence,用来得到自动增长值:
create sequence For_test
increment by 1
start with 1
maxvalue 999999999
nocycle
cache 10;
测试:
insert into test(id,name) values(For_test.Nextval,'Hello');
insert into test(id,name) values(For_test.Nextval,'World');
insert into test1(id,name) values(For_test.Nextval,'OK');
查询测试数据:
sql>select * from test;
id name
----------------
1 Hello
2 World
sql>select * from test1;
id name
----------------
3 OK
说明:
从上面的例子中我们看到,我们创建一个sequence用来获得一个自动增长的值(这和sql server中的实现不同),但同时这个sequence可以同时用于多个数据表,并且为不同数据表获取的自动增长值是不重复的.
问题:
如果要为一个表单独创建一个sequence,就是说别的表不能使用该sequence,oracle是否可以做到;或者有没有其他的办法为oracle数据表设置自动增长列?