往oracle数据库中新增加一条数据如何自动生成ID

2024-10-31 21:28:37
有2个网友回答
网友(1):

oracle 中不能设置自动增加,这个和其他数据库不一样,但是有 序列,这个是Oracle自己特有的东西,
首先创建序列:
create sequence seq;
这就创建好了,然后 seq.nextval 就会返回一个值,不会重复的值,
insert into tablename values(seq.nextval,'001','javabook');
insert into tablename values(seq.nextval,'001','javabook');
insert into tablename values(seq.nextval,'001','javabook');
这样前3个id 分别是 1,2,3

网友(2):

先在数据库中新增一个序列,如在oracle数据库中执行如下语句新增一个名为test_seq的序列
CREATE SEQUENCE test_seq
INCREMENT BY 1 -- 每次加几个
START WITH 1 -- 从1开始计数
NOMAXVALUE -- 不设置最大值
NOCYCLE -- 一直累加,不循环
以后你往某表中插入数据时,直接用如下形式就行了,比如:
insert into test_table VALUES (test_seq.nextval, ......)

test_table的第一列就是你要自增的那个id,test_seq.nextval就是从新增的序列中取出下一个值,每取一次都会+1.
当然,一般来说不同的表需使用不同的序列,这样它们的id可以保证连续