【发布时间】:2016-05-06 17:48:09
【问题描述】:
我想知道一个表的序列在 oracle 数据库内部是如何工作的。特别是它们如何增加序列的值。
他们是使用触发器来增加序列的值还是其他什么???
【问题讨论】:
-
序列没有触发器 - 但触发器可能会从序列中获取值。
标签: database oracle oracle11g triggers sequence
我想知道一个表的序列在 oracle 数据库内部是如何工作的。特别是它们如何增加序列的值。
他们是使用触发器来增加序列的值还是其他什么???
【问题讨论】:
标签: database oracle oracle11g triggers sequence
Oracle 不会将序列作为其他对象(如表)来处理。 如果您使用 NEXTVAL 插入 100 条记录并发出 ROLLBACK, 此序列不会回滚。 相反,100 条记录将增加序列。 下一个插入将具有序列的第 101 个值。 这将导致序列中的“空格”。这允许多人 安全地使用序列,没有重复的风险。 如果两个用户同时抢到 NEXTVAL,他们将 分配的唯一编号。 Oracle 在内存中缓存序列。 init.ora 参数 SEQUENCE_CACHE_ENTRIES 定义缓存大小。
【讨论】: