oracle中自动增长列的实现

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



创建两个表,用来做测试:
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、付费专栏及课程。

余额充值