oracle序列怎么用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle序列怎么用相关的知识,希望对你有一定的参考价值。

用jdbc来crud操作,主键用oracle的序列,insert语句中
表的主键为:序列名.NEXTVAL 吗?
有什么方法是自动得到序列的?

oracle是没有自增类型字段的,你可以用触发器,每次insert都触发获取一次这个序列的nextval就行。
不过序列是有缓存的,所以插入的数字有可能不是连续的。
如果一定要避免这个问题,你可以不用序列,而采用日志表的形式,在表中记录最大的编号。如果对性能没有要求,直接在插入表中统计也未尝不可。
参考技术A 直接这样不行吗 建立一个序列
然后每次insert的时候 直接
insert into table (主键名,xx,xxx,xxxx...) values (序列名.nextval,xx,xxx,xxxx....)
不过序列一般是循环回复的,所以都会加上日期:insert into table (主键名,xx,xxx,xxxx...) values (to_char(sysdate,'YYYYMMDD')||序列名.nextval,xx,xxx,xxxx....)
参考技术B 去itaa学习组论坛找一下吧!百度一下没有吗???

Oracle怎么建自动增长列

oracle:
oracle没有自增长序列,因此可以用以下方法来实现
1.建立表格:
createtabletable1
(
cidnumber(8)notnull,
othersvarchar2(20)
);
2.建立从1开始的序列:
createsequenceemp_sequence
incrementby1--每次加几个
startwith1--从1开始计数
nomaxvalue--不设置最大值
nocycle--一直累加,不循环
nocache--不建缓冲区3.建立触发器:
createorreplacetriggermytgr
beforeinsertontable1foreachrow
begin
selectmytgr.nextvalinto:new.cidfromdual;
end;
mysql:
createtabletbname(a_idunsignedintprimarykeyauto_incrementnotnull,
a_titlevarchar(32),
a_contenttext);
参考技术A create sequence 序列名

increment by 1

start with 1

maxvalue 999999999

cycle;

当向表中插入数据时,SQL语句写法如下:

SQL> insert into 表名 values(序列名.nextval,列1值,列2值);本回答被提问者采纳
参考技术B 序列是可以增长的,但是不能控制并发。 参考技术C Oracle是用squence去实现自动增长的 参考技术D trigger

以上是关于oracle序列怎么用的主要内容,如果未能解决你的问题,请参考以下文章

oracle创建序列的语法

oracle多张表可以都用一个序列吗?

oracle 怎样使UPDATE 更新序列??

oracle数据库,怎么给已有很多数据的表填充自增序列字段

oracle创建一个序列,让他一直显示五位怎么做,比如00001/00002/00003.......

oracle如何查询当前用户都有哪些序列?