oracle - 在没有触发器的情况下管理/实现Oracle中的自动增量主键

标签 oracle grails groovy oracle11g auto-increment

由于我们正在从MySQL迁移到Oracle的过程中,数据库中有许多表具有自动递增主键ID的设置方式,因此它们在MySQL中的设置方式相同。

现在在oracle中,我最近了解到要实现此功能,需要为每个此类表的id字段创建一个序列和一个触发器。我们的架构中有30 -40个表,我们希望避免在产品中使用数据库触发器,因为数据库管理超出了我们软件设备的范围。

除了在代码中手动指定ID并在代码中进行管理(这会更改许多现有的insert语句)之外,在oracle中实现自动递增ID功能的方法是什么?

...我想知道是否有办法从grails代码本身中做到这一点? (通过在域类映射中将id指定为增量的方法不起作用-仅适用于mysql)
有关我们的应用程序环境的一些信息:grails-groovy,hibernate,oracle,mysql支持

最佳答案

This answer将让Grails / Hibernate自行处理序列生成。它将为每个表创建一个用于主键生成的序列,并且不会缓存任何数字,因此,如果缓存超时,则不会丢失任何标识符。 Grails / Hibernate直接调用该序列,因此它也不使用任何触发器。

关于oracle - 在没有触发器的情况下管理/实现Oracle中的自动增量主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8800377/

相关文章:

oracle - Confluence 数据库连接设置

sql - oracle sql中名字(varchar2数据类型)的排序问题

php - 如何在 PHP 中从 Oracle 获取单行?

grails - Grails Spring Websocket插件和Spring安全性

pdf - Flying Saucer 无法在 ubuntu tomcat6 上解析图像或 CSS

java - 在 Elasticsearch 查询中格式化日期(检索期间)

Grails/Groovy log4j - 记录行号、方法名和类名

oracle - Spring Batch 的 oracle 用户需要什么权限?

grails - 在服务器上生成的Grails spring-security-rest JWT token 与在客户端上收到的 token 不匹配

java - 如何在 Groovy 中使用 SOAPUI 类