使用 NEXTVAL
要首次访问序列,在您可引用 sequence.CURRVAL 之前,你必须引用 sequence.NEXTVAL。第
一个对 NEXTVAL 的引用返回该序列的初始值。对 NEXTVAL 的每一后续的引用,都按照定义
的 step 来增加该序列的值,并返回该序列的新的增加的值。
在单个 SQL 语句之内,您可对给定的序列仅增加一次。即使您在单个语句之内指定
sequence.NEXTVAL 多次,该序列也仅增加一次,因此,在同一 SQL 语句中
sequence.NEXTVAL 的每次发生都返回相同的值。
除了在同一语句之内多次发生的情况之外,每个 sequence.NEXTVAL 表达式增加该 sequence,不
管您随后是提交还是回滚当前事务。
如果您在最终回滚了的事务中指定 sequence.NEXTVAL,则可能跳过某些序列编号。
使用 CURRVAL
任何对 CURRVAL 的引用都返回指定序列的当前值,这是您最后对 NEXTVAL 引用返回的值。
在您以 NEXTVAL 创建新值之后,您可继续使用 CURRVAL 来访问那值,不管另一用户是否增
加该序列。
如果在 SQL 语句中同时发生 sequence.CURRVAL 和 sequence.NEXTVAL,则该序列仅增加一
次。在此情况下,每一 sequence.CURRVAL 和 sequence.NEXTVAL 表达式返回相同的值,不管
sequence.CURRVAL 和 sequence.NEXTVAL 在语句内的顺序。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




