3

我维护了一个最初编写为特定于 SQL Server 的应用程序(使用 IDENTITY 字段)。因此,我们必须定义很多触发器来自动增加表的主键。

有人告诉我,这在甲骨文世界中被认为是一种 hacky 解决方法,但这是以“朋友的朋友”的方式告诉我的。使用触发器从序列中增加主键而不是直接使用序列有多大意义?

4

2 回答 2

10

根据我的经验,这是一种非常普遍的做法,而且不是非常糟糕的做法。但是,如果您可以控制插入(例如,如果所有插入都通过 PL/SQL API 完成),那么直接在 INSERT 语句中使用序列会更有效——因为它避免了触发触发器的开销。但是,如果您使用了触发器,我真的不会过分担心!

于 2009-12-05T15:05:22.023 回答
1

这可能并不完全相关,但使用“插入前触发器”来自动增加主键是一个不错的选择,尤其是在 Merge 语句中。如果在 Merge insert 部分中直接使用序列,则似乎即使在更新时也会调用该序列。

于 2009-12-07T15:14:10.980 回答