在现代版本的 Oracle 中,是否有一些“标准”(存储过程、附加 CREATE 语法等)方法来设置具有 auto_increment/identity 样式列的表,或者我们仍然坚持手动创建表、创建序列、并创建触发器。
更新:我意识到 Oracle 没有 auto_increment 的概念。我感兴趣的是,是否有任何标准 Oracle 工具自动创建了序列和触发器,或者 DBA 是否需要创建所需的查询/命令来创建序列并自行触发。
在现代版本的 Oracle 中,是否有一些“标准”(存储过程、附加 CREATE 语法等)方法来设置具有 auto_increment/identity 样式列的表,或者我们仍然坚持手动创建表、创建序列、并创建触发器。
更新:我意识到 Oracle 没有 auto_increment 的概念。我感兴趣的是,是否有任何标准 Oracle 工具自动创建了序列和触发器,或者 DBA 是否需要创建所需的查询/命令来创建序列并自行触发。
如果你想要一个顺序递增的有序值,那么不,SEQUENCE
是唯一的选择。
如果您只想要一个身份,请使用SYS_GUID()
Oracle SQL Developer为您提供了自动创建“创建或替换触发器”代码的选项,该代码从序列中填充表的主键。为此,在导航树中,右键单击表名 > 触发器 > 创建(来自序列的 PK)。但它不会为您创建序列。
您实际上不需要触发器,您可以在将新行填充到表中时引用序列的下一个值。如果您愿意,您甚至可以在多个表之间共享一个序列。
自动递增?不,谢谢。您被序列卡住了(尽管不太方便,但通常会更好)。
但是,您可以使用 GUID。Oracle 有一个您可以使用的SYS_GUID()函数。