Oracle和auto_increment / identity

时间:2009-07-27 16:30:24

标签: oracle identity auto-increment

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

更新:我发现Oracle没有auto_increment的概念。我感兴趣的是,如果任何标准Oracle工具已经自动化了序列和触发器的创建,或者如果DBA留下来创建所需的查询/命令来创建序列并触发它们自己。

4 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:3)

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

答案 2 :(得分:3)

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

答案 3 :(得分:2)

自动递增?不,谢谢。你被序列所困扰(尽管通常稍微不方便,但这些序列通常更好)。

但您可以使用GUID。 Oracle可以使用SYS_GUID()函数代替。