【发布时间】:2016-11-28 22:59:23
【问题描述】:
在 Oracle 中,如果我创建一个带有 ID 字段的表,并为该字段创建一个序列对象,以自动递增 1 并从 1 开始。
IE:ID:1、2、3、4、5、6等...
那么对于表的第一条记录,我手动做了一个插入,IE:
insert into table(ID, etc...) values (1, etc...)
如果序列对象用于下一次插入,序列对象是否会自动跳到下一个可用 ID (2)?
【问题讨论】:
-
简单的答案是否定的。序列无论如何都不会绑定到表格。它们是两个独立的对象,旨在结合使用。如果您需要这种故障转移,您的应用程序将需要处理主键违规并请求新值。否则,请始终使用序列。
-
使用触发器强制使用序列,并忽略插入中提供的值。
-
谢谢你们。这很有帮助。
标签: database oracle insert sequence