【发布时间】:2010-12-23 13:40:48
【问题描述】:
我维护了一个最初编写为特定于 SQL Server 的应用程序(使用 IDENTITY 字段)。因此,我们不得不定义很多触发器来自动增加表的主键。
有人告诉我,这在甲骨文世界中被认为是一种 hacky 解决方法,但这是以“朋友的朋友”的方式告诉我的。使用触发器从序列中增加主键而不是直接使用序列有多大意义?
【问题讨论】:
-
你能升级你的Oracle吗?我认为 10g(或者是 11g?)可能已经在它的 DEFAULT 中有一个序列,因此不需要触发器。
-
据我所知,即使在 11G 中,您也不能将序列用作列默认值。
-
是的,在 11G 中没有序列作为默认列。 11G 的变化在于,在 PL/SQL 中,您现在可以在变量声明中使用序列作为默认值,而不必对 dual 进行选择以使用序列 nextval 填充变量。
标签: oracle triggers primary-key identity sequences