【Oracle学习】之 序列(Sequence)
发布时间:2020-12-12 14:53:10 所属栏目:百科 来源:网络整理
导读:oracle文档:https://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_6015.htm#SQLRF01314 一、序列的特点: 1。 可以为表中的记录自动产生唯一序号; 2。 由用户创建并且可以被多个用户共享; 3。典型应用是生成主键值,用于标识记录的唯一性; 4
一、序列的特点:
二、创建序列:
START WITH:设置序列初始值,默认值为1。INCREMENT BY:设置相邻两个元素之间的差值,默认为 1。NOMAXVALUE:默认情况下,递增序列的最大值为10^28 - 1NOMINVALUE:最大值:-1, 最小值为 -(10^27 - 1)三、序列的使用:序列具有CURRVAL和NEXTVAL两个伪列。(均返回NUMBER类型)①CURRVAL:返回序列的当前值②NEXTVAL:在序列中产生新值并返回此值++++以下语句可以使用序列的NEXTVAL和CURRVAL:+++++①SELECT语句的目标列中;②INSERT:语句的子查询的目标列中;③INSERT:语句的VALUES子句中;④UPDATE:语句的SET子句中。++++以下语句不可以使用序列的NEXTVAL和CURRVAL:+++++①对视图查询的SELECT目标列中;②使用了DISTINCT关键字的SELECT语句中;③SELECT语句中使用GROUP BY、HAVING或ORDER BY子句时;④在SELECT、DELETE或UPDATE语句的子查询中;⑤在CREATE TABLE 或 ALTER TABLE 语句中的默认值表达式中。Tips:(1)(2)在访问序列中的序号时,可能会发生序号不连续的情况,不连续的原因可能是事务发生了回滚,或者多个用户共同访问同一个序列。四、修改序列:可以使用ALTER SEQUENCE 语句修改序列。除了不能修改序列的START WITH参数外,可以对序列其他参数进行修改。如果要修改MAXVALUE参数,需要保证修改后的最大值大于序列的当前值(CURRVAL)。此外,序列的修改只影响以后生成的序列值。 五、查看序列信息①dba_sequences②all_sequences③user_sequences(一般使用这个查看)六、删除(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |