oracle中自动增长列的实现



创建两个表,用来做测试:
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数据表设置自动增长列?
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值