3

在现代版本的 Oracle 中,是否有一些“标准”(存储过程、附加 CREATE 语法等)方法来设置具有 auto_increment/identity 样式列的表,或者我们仍然坚持手动创建表、创建序列、并创建触发器。

更新:我意识到 Oracle 没有 auto_increment 的概念。我感兴趣的是,是否有任何标准 Oracle 工具自动创建了序列和触发器,或者 DBA 是否需要创建所需的查询/命令来创建序列并自行触发。

4

4 回答 4

5

如果你想要一个顺序递增的有序值,那么不,SEQUENCE是唯一的选择。

如果您只想要一个身份,请使用SYS_GUID()

于 2009-07-27T16:34:07.440 回答
3

Oracle SQL Developer为您提供了自动创建“创建或替换触发器”代码的选项,该代码从序列中填充表的主键。为此,在导航树中,右键单击表名 > 触发器 > 创建(来自序列的 PK)。但它不会为您创建序列。

于 2009-07-27T17:49:25.430 回答
3

您实际上不需要触发器,您可以在将新行填充到表中时引用序列的下一个值。如果您愿意,您甚至可以在多个表之间共享一个序列。

于 2009-07-27T23:12:38.210 回答
2

自动递增?不,谢谢。您被序列卡住了(尽管不太方便,但通常会更好)。

但是,您可以使用 GUID。Oracle 有一个您可以使用的SYS_GUID()函数。

于 2009-07-27T16:36:09.493 回答