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())
以前用的mysql,是有自动递增这个属性的,现在用的orlace,需要建序列来实现递增,这里记录一下:
一、先建一张表(PROJECT_LOGS)
二、表建好了,我们来建一下序列,我用的是sqldeveloper界面来建:
其实到了这里就实现了递增,只是写sql时要传入id(SEQ_PROJECT_LOGS.Nextval);
三、创建触发器:
使用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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)