使用oracle数据库中的关键字sequence来实现目的。
企业建站必须是能够以充分展现企业形象为主要目的,是企业文化与产品对外扩展宣传的重要窗口,一个合格的网站不仅仅能为公司带来巨大的互联网上的收集和信息发布平台,创新互联面向各种领域:成都汽车玻璃修复等成都网站设计、成都全网营销解决方案、网站设计等建站排名服务。
//创建mySeq
create sequence mySeq
start with 1
increment by 2
maxvalue 40
minvalue 1
cycle
//创建用户表
create table USER
(
Id int,
CompName varchar2(20)
)
插入语句可以这样写:
insert into USER values(mySeq.nextVal,'AA')
这样的话每次插入的ID就是自动递增的
扩展资料:
sequence用法:
create sequence 序列名称
start with 起始数
increment by 增长量
[maxvalue 值]
[minvalue 值]
[cycle 当到达最大值的时候,将继续从头开始]
[Nocycle -- 一直累加,不循环]
[Cache ]
参考资料:百度百科-oraclesequence
oracle sql developer建表的时候id字段的自动递增的设置方法和步骤如下:
1、首先,打开sql
server数据库,创建一个新表,然后在表中创建id字段并选择int类型,如下图所示,然后进入下一步。
2、其次,完成上述步骤后,选择id字段,然后在下面的列属性中找到标识规范,如下图所示,然后进入下一步。
3、接着,完成上述步骤后,单击标识规范,可以看到默认值为“否”,这表示不递增,如下图所示,然后进入下一步。
4、然后,完成上述步骤后,将标识规范调整为“是”,将“标识增量”设置为1,然后单击保存按钮,如下图所示,然后进入下一步。
5、最后,完成上述步骤后,添加数据时ID将自动递增,如下图所示。这样,问题就解决了。
(1)ID自增可以使用sequence实现,创建sequence的语句如下:
create sequence SEQ_ID /*Sequence名称为SEQ_ID*/
minvalue 1 /*最小值*/
maxvalue 99999999 /*最大值*/
start with 1 /*开始值*/
increment by 1 /*每次增加的值*/
cache 20; /*缓存个数*/
插入时使用SEQ_ID.NEXTVAL取下一个值。
(2)例如设置ID列为B表的主键,主键名称为PK_B,使用如下语句:
alter table B
add constraint PK_B primary key (ID);
注:建议使用PLSQLDeveloper工具,上述操作都可以实现可视化,很方便。
用序列实现
--自增长序列
create table test(
tid int not null,
tname varchar(20),
tsex varchar(20),
tbz varchar(50)
)
--添加主键约束
alter table test add constraint test_pk primary key (tid)
--自增序列
create sequence test_seq
minvalue 1
maxvalue 1000
start with 1
increment by 1
--插入数据
insert into test values(test_seq.nextval,'张三','男','无备注');
insert into test values(test_seq.nextval,'李四','男','组长');
一、主键id自增
oracle 中不能设置自动增加,这个和其他数据库不一样,但是有 序列,这个是Oracle自己特有的东西,
1、首先创建序列:create sequence seq;
语法:
CREATE SEQUENCE 序列名
[INCREMENT BY n] --每次加几
[START WITH n] --序列从几开始
[{MAXVALUE/ MINVALUE n|NOMAXVALUE}] --小值、大值限制
比CREATE SEQUENCE seq start with 1 increment by 1; --建立了额从1开始每次加1序列
访问序列时用 序列名称.nextval语法
这就创建好了,然后 seq.nextval 就会返回一个值,不会重复的值,
insert into tablename values(seq.nextval,'test');
insert into tablename values(seq.nextval,'test');
insert into tablename values(seq.nextval,'test');
这样前3个id 分别是 1,2,3
二、自动生成UUID策略
import java.util.UUID;
Student s = new Student();
s.setId(UUID.randomUUID().toString());
oracle不想sql server一样有一个自增长属性可以设置。oracle如果需要自增长需要使用序列。
主要的实现过程:
1、创建序列
-- Create sequence
create sequence SEQ_NAME
minvalue 1
maxvalue 9999999999
start with 1
increment by 1
cache 20
order;
其中SEQ_NAME是自定义的序列名称,上面那个创建序列的意思是开始序列号是1,序列增量是1,最小值是1,高速缓存大小是20
2、调用序列作为主键
select seq_name.nextval from dual;---查询seq_name序列的下一个数值
insert into tablename (a,b) value (seq_name.nextval,'b');--获取下一个序列值插入数据库中