gpt4 book ai didi

oracle - 如何在 GRAILS 中获取下一个 id?

转载 作者:行者123 更新时间:2023-12-02 11:50:57 25 4
gpt4 key购买 nike

我需要使用 GORM 或 native 查询获取序列中的下一个可用 id。我怎样才能做到这一点?

我正在使用甲骨文。

<小时/>

更新:

插入之前需要这个值,因为我的行将使用这个值。我有一个名为 IMAGE 的表,其中包含 FILE_NAME 列,如下所示:

- ID | FILE_NAME
- 123 | foo_bar_123.png
- 124 | xxx_yyy_124.png

非常感谢。

最佳答案

为什么需要插入之前的值?您能否使用 RETURNING 子句获取作为插入部分的信息,即

INSERT INTO table_name( id, file_name )
VALUES( some_sequence.nextval, <<bind variable>> )
RETURNING id INTO <<bind variable>>

或者在插入后使用

访问它
SELECT sequence_name.currval
FROM dual

序列的 currval 返回当前 session 中生成的序列的最新值,因此它实际上是线程安全的。由于序列旨在在高度并发的环境中提供数字,因此通常无法找出 nextval 将会是什么,除非您实际获取 nextval。即使您可以,也不能保证另一个线程不会出现并获取您在 INSERT 发生之前查看的值,因此查看 是不安全的多用户环境中的 nextval

关于oracle - 如何在 GRAILS 中获取下一个 id?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9729042/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com