创建两个表,用来做测试:
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数据表设置自动增长列?
博客展示了在Oracle中创建两个表用于测试,同时创建sequence获取自动增长值,并进行插入和查询操作。指出该sequence可用于多个数据表且值不重复,最后提出为单个表创建sequence及为Oracle数据表设置自动增长列的问题。
6822

被折叠的 条评论
为什么被折叠?



