目录
1.前言
刚接触Oracle的时候,插入数据总出错,后来了解之后才发现Mysql跟Oracle主键不一样,Oracle得依靠序列完成自增,今天就分享下Oracle序列,文中有若有不对的地方,还请批评指正。
2.概念
序列(SEQUENCE)是数据库的一个对象。它就是生成一个递增的整数,一般作为数据库的主键。不占用磁盘空间,占用内存。
3.创建序列
//S_METER_FACTORY 序列名,我们公司一般用S_表名来命名
CREATE SEQUENCE S_METER_FACTORY
MINVALUE 0 //最小值
MAXVALUE 9999999999999999999999999999 //最大值
START WITH 0 //生成的第一个序列号,这个值可以比最大值大但不能比最小值小
INCREMENT BY 1 //递增1
CACHE 20; //设置缓存
java中使用@keySequence注解
4.删除序列
//S_METER_FACTORY序列名
DROP SEQUENCE S_METER_FACTORY;
5.根据序列获取主键id
插入语句一般就用第一条据够了。
//获取下一个主键
SELECT S_METER_FACTORY.nextval FROM dual
//获取当前主键,这个语句只能在获取下一个主键后才能执行,否则报错。
SELECT S_AMI_OPERATORS.currval FROM dual